Re[5]: malloc vs new []
От: LaptevVV Россия  
Дата: 25.01.08 06:39
Оценка: 4 (1)
Здравствуйте, DemAS, Вы писали:

DAS> Я правильно понял, что память под все переменные объявленные в функции будет выделена в момент вызова этой функции и освобождена в момент выхода из функции?

DAS> Это же относится и к методам/переменным, объявленным в методе класса?
Да.
Причем размер стека ограничен, поэтому большой локальный массив может вызвать проблемы.

LVV>>Уничтожение объектов и возврат памяти выполняется операцией delete, например

LVV>>
delete p1;

LVV>>Естественно, указатель должен быть именно тот, который использовался при создании динамического объекта операцией new.

DAS> А вот так корректно делать:

DAS>
DAS>     int *p1 = new int();
DAS>     int *p2 = p1;
DAS>     delete p2;
DAS>

DAS> ?
Это классика — висячая ссылка. Было две ссылки на одну и ту же память. По одной из них память возвращена. Вторая "провисла".
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.