• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Malloc i wyciek pamięci

+3 głosów
548 wizyt
pytanie zadane 30 czerwca 2017 w C i C++ przez Madar Obywatel (1,560 p.)
edycja 3 lipca 2017 przez Madar
char *ptr;
int i;
for (i=2; i<=5; i++) {
   ptr = malloc(i);
}
free(ptr);

Cześć! Mam pytanie odnośnie powyższego zadania. Jaki będzie wyciek pamięci po wykonaniu się tego kodu? Wiem, że malloc przyjmuje ilość bajtów do dynamicznej rezerwacji w pamięci, ale nie do końca chyba rozumiem jak poniższy kod działa: 

Według mnie wyciek pamięci będzie równy 9 bajtów, ponieważ pętla wykona się 4 razy rezerwując za każdym razem odpowiednio 2,3,4 oraz 5 bajtów, a po tym wszystkim funkcja free(ptr) wyczyści pamięć tylko z ostatniej iteracji, zatem reszta nie zostanie wyczyszczona więc wyciek pamięci będzie równy 9 bajtów. 

Czy ktoś mógłby potwierdzić/zaprzeczyć i w tym drugim przypadku opisać jak działa powyższy kod i jaki będzie faktyczny wyciek?

komentarz 30 czerwca 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Nie wiem, czy używałeś tagu HTML <strong> celowo, czy to jakiś błąd w forum, ale poprawiłem na pogrubiony tekst wink

komentarz 30 czerwca 2017 przez Madar Obywatel (1,560 p.)
Dzięki za poprawkę :) Nie planowałem tego, widocznie jakiś bug się wkradł

1 odpowiedź

+2 głosów
odpowiedź 30 czerwca 2017 przez criss Mędrzec (172,570 p.)

Dobrze myślisz. Myślę, że wszystko rozumiesz.

opisać jak działa poniższy kod i jaki będzie faktyczny wyciek?

Rozumiem, że poniżej miało coś być jeszcze? :P 

komentarz 30 czerwca 2017 przez Madar Obywatel (1,560 p.)
Nie, to mój błąd. Dzięki za odpowiedź :)

Podobne pytania

0 głosów
1 odpowiedź 432 wizyt
pytanie zadane 25 sierpnia 2020 w C i C++ przez fortuna Początkujący (310 p.)
0 głosów
1 odpowiedź 725 wizyt
pytanie zadane 15 listopada 2017 w C i C++ przez kosttek Początkujący (450 p.)
0 głosów
1 odpowiedź 683 wizyt
pytanie zadane 25 listopada 2017 w C i C++ przez Krótki Użytkownik (760 p.)

93,427 zapytań

142,421 odpowiedzi

322,649 komentarzy

62,787 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...