stl - Destructing the Vector contents in C++ -


i have std::vector of element*. when destructor called. how different if vector of element

std::vector<element*> vect; ..  struct element {     record *elm;              element(record *rec)     {         elm = new record();         //...copy rec     }     ~element()     {         delete elm;     } }; 

i using vector follows:

element *copyelm = new element(record); vect.push_back(copyelm); 

in above code, how can ensure there's no leak.

vector call release memory of object holding (i.e. pointers) not release memory of object pointing to. need release memory of element object yourself. if vector<element> whenever push_back copy of element inserted vector. vector guarntess release memory allocated copied object. aware current definition of element seg fault have not defined copy ctor , assignment operator.

edit if reason don't want use smart pointers, option write release function goes through entire vector , calls delete on stored pointer.


Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -