• 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

Mały hosting, OGROMNE możliwości
0 głosów
1,253 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 667 wizyt
pytanie zadane 21 listopada 2015 w C i C++ przez Zomfire Użytkownik (600 p.)
0 głosów
2 odpowiedzi 1,794 wizyt
0 głosów
1 odpowiedź 2,704 wizyt

93,696 zapytań

142,614 odpowiedzi

323,225 komentarzy

63,230 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...