Ustawienie znaku '\0' w środku napisu - czy wyciek pamięci?

1

Czy w poniższym przykładzie dochodzi do wycieku pamięci?

char *wsk = malloc(10);
char nap[] = "napis";
strcpy(wsk,nap);
wsk[2] = '\0';
free(wsk);
2

Nie. Dla free nie mają znaczenia dane, które znajdują się w pamięci. Możesz sobie wyobrazić, że z każdym wywołaniem malloc zapamiętywana jest na boku ilość pamięci, która została zaalokowana i później to ona jest zwalniania przez free.

1

Dzięki. Nie byłem pewien czy znak zerowy wyznacza tylko koniec napisu czy też koniec bloku przydzielonej pamięci. Będę już pamiętał :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1