Ja chyba w C czegos nie kumam

floydrose floydrose w gazeta.pl
Czw, 14 Kwi 2005, 00:18:43 CEST


Tomasz Narloch napisał(a):

>  char *home = getenv("HOME");
>  char *FIFOR = malloc(sizeof(home)+20);
>  char *FIFOW = malloc(sizeof(home)+20);

Na moje oko to źle alokujesz pamięć. Sizeof zwraca rozmiar argumentu a u
ciebie argumentem jest wskaźnik - czyli jakieś 4B. Do pobierania
długości napisów służy funkcja strlen(napis) i jej powinieneś tu użyć.
Jak się pisze po pamięci której się nie zaalokowało to różne jaja mogą
wyjść, np. tak jak u Ciebie.
Polecam Electric Fence'a - on takie kwiatki wykrywa w mig.

pozdrawiam
floydrose




Więcej informacji o liście dyskusyjnej pld-users-pl