Prikaz jedne poruke
Stara 2.5.2012, 20:54   #12
absonic
Član
 
Član od: 4.11.2005.
Poruke: 285
Zahvalnice: 15
Zahvaljeno 7 puta na 6 poruka
Određen forumom Re: Pomoc oko programa u C-u

Evo mene opet

Zanima me sledece:
treba da unesem string, ciju duzinu ne znam unapred. Memorija treba da se alocira dinamicki.

ja sam to uradio na sledeci nacin:

dodelio sam jedan bajt memorije (za znak '\0'), a zatim svaki put kada ucitam novi karakter sa getchar() (dok god je getchar()!='\n') uvecam brojac duzine za jedan i alociram (d+1)*sizeof(char) preko realloc. Medjutim, uvek mi izbacuje duzi string nego sto to zapravo jeste. Npr unesem test, kad stavim printf("%s", string), izbaci test=2222 itd.

Ako neko moze da pogleda kod, i pomogne da pronadjem gde je greska
Kod:
void main() {
	char *niz;
	char c;
	int d=1,i=0;

	niz=(char*)malloc(sizeof(char));
	while ( (c=getchar()) != '\n')
	{
		d++;
		niz = (char*)realloc (niz, d);
		niz[i]=c;
		i++;
	}
absonic je offline   Odgovor sa citatom ove poruke