Anonymní profil Martin – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Martin – Programujte.comAnonymní profil Martin – Programujte.com

 

Příspěvky odeslané z IP adresy 85.93.187.–

Martin
C / C++ › Uvolnění paměti
18. 8. 2015   #204399

Zdravím, chtěl bych se zeptat, když alokuji paměť pomocí new s umístěním a následně vytvořím si na bufferu dejme tomu třeba 2 objekty. Moje otázka zní jestli stačí uvolnit paměť  bufferu, kde jsou oba objekty uloženy nebo musím volat explicitně destruktory pro oba objekty a pak pro buffer (tak jak radí v knížce). Děkuji za odpověď

Pro upřesnění:

#include <new>

const int BUF = 512;

int main()

{

  char * buffer = new char [BUF];

Nejaky_objekt *pt1, *pt2;

pt1 = new (buffer) Nejaky_objekt;

pt2 = new (buffer + sizeof (Nejaky_objekt)) Nejaky_objekt);

.........

pt1->~Nejaky_objekt();                       // <----- Je to nutné??

pt2->~Nejaky_objekt();                       // <----- Je to nutné??

delete [] buffer;                                  // <---- Když uvolním pamět, kde jsou oba objekty uloženy

 return 0;

}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý