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

Usuwanie zmiennej dynamicznej stworzonej wewnatrz funkcji

0 głosów
1,138 wizyt
pytanie zadane 19 stycznia 2016 w C i C++ przez Waszek Gaduła (4,130 p.)
Cześć :) szybkie pytanie - jeżeli tworze zmienna dynamiczna wewnątrz funkcji, który ani nie jest zwracany, ani nic innego to muszę go ręcznie usunąć, czy funkcja po zakończeniu zrobi to za mnie :)?

2 odpowiedzi

+1 głos
odpowiedź 19 stycznia 2016 przez MrMcDanio Początkujący (360 p.)
Powinno się ręcznie usunąć obiekt alokowany przez new, dzięki operatorowi delete.

Jeśli ten obiekt przechowuje dane, to zwróć go i po problemie.

Pzdr.
+1 głos
odpowiedź 19 stycznia 2016 przez Patrycjerz Mędrzec (192,320 p.)

Pamięć alokowana dynamicznie jest zwalniana w dwóch przypadkach:

  1. Gdy proces, który daną pamięć wykorzystuje, został zakończony
  2. Gdy wyniknie to z kodu źródłowego programu

Można więc stwierdzić, że przydzielona pamięć w funkcji nie znika po wyjściu z niej - należy więc zawsze zwalniać pamięć samemu (w niektórych językach występuje tzw. garbage collector, który usuwa automatycznie nieużywaną pamięć, ale nie dotyczy to C/C++).

Podobne pytania

0 głosów
2 odpowiedzi 565 wizyt
pytanie zadane 21 listopada 2015 w C i C++ przez Zomfire Użytkownik (600 p.)
0 głosów
2 odpowiedzi 1,679 wizyt
0 głosów
1 odpowiedź 2,585 wizyt

93,427 zapytań

142,421 odpowiedzi

322,648 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
...