Все вопросы: [delete-operator]
10 вопросов
Is delete[] equal to delete?
IP_ADAPTER_INFO *ptr=new IP_ADAPTER_INFO[100]; if I free using delete ptr; will it lead to memory leak, if not then why ? This is disassembly code generated by VS2005 ; delete ptr; 0041351D mov eax,dword ptr [ptr] 00413520 mov dword ptr [ebp-0ECh],eax 00413526 mov ...
Как удаление работает с постоянством указателя?
Я читал этот вопрос Удаление константного указателя и хотел узнать больше о поведении delete . Теперь, как я понимаю: delete expression работает в два этапа: вызвать деструктор затем освобождает память (часто с вызовом free()), вызывая оператор delete. operator delete принимает vo...
Удаление указателя на const (T const *)
У меня основной вопрос относительно константных указателей. Мне не разрешено вызывать какие-либо неконстантные функции-члены с помощью константного указателя. Однако мне разрешено делать это с константным указателем: delete p; Это вызовет деструктор класса, который по сути является неконс...
Почему не удалить указатель на NULL?
Меня всегда интересовало, почему автоматическая установка указателя на NULL после delete не является частью стандарта. Если об этом позаботиться, то многих сбоев из-за неправильного указателя не произойдет. Но, сказав это, я могу придумать пару причин, по которым стандарт ограничил бы это: ...
Как delete [] узнает, что это массив?
Хорошо, я думаю, мы все согласны с тем, что то, что происходит со следующим кодом, не определено, в зависимости от того, что передано, void deleteForMe(int* pointer) { delete[] pointer; } Указатель может быть самым разным, поэтому выполнение безусловного delete[] на нем не определено...
Вызывает ли удаление указателя на подкласс деструктор базового класса?
У меня есть class A, который использует выделение памяти кучи для одного из своих полей. Класс A создается и сохраняется как поле указателя в другом классе (class B. Когда я закончил работу с объектом класса B, я вызываю delete, который, как я предполагаю, вызывает деструктор ... Но вызывает л...
Есть ли причина проверять указатель NULL перед удалением?
Я часто вижу проверку устаревшего кода на NULL перед удалением указателя, аналогично, if (NULL != pSomeObject) { delete pSomeObject; pSomeObject = NULL; } Есть ли причина проверять указатель NULL перед его удалением? По какой причине впоследствии был установлен указатель на NULL?
перегрузка нового / удаления
Я делаю в своей программе небольшой поиск утечек памяти, но мой способ перегрузки new и delete (а также new [] и delete []) похоже, ничего не делает. void* operator new (unsigned int size, const char* filename, int line) { void* ptr = new void[size]; memleakfinder.AddTrack(ptr,size,fi...
Удаление элементов массива в JavaScript - delete vs splice
В чем разница между использованием оператора delete в элементе массива, в отличие от использования метода Array.splice а>? Например: myArray = ['a', 'b', 'c', 'd']; delete myArray[1]; // or myArray.splice (1, 1); Зачем вообще нужен метод сращивания, если я могу удалять элементы...
Вызов удаления переменной, выделенной в стеке
Игнорируя стиль программирования и дизайн, "безопасно" ли вызывать delete для переменной, размещенной в стеке? Например: int nAmount; delete &nAmount; или class sample { public: sample(); ~sample() { delete &nAmount;} int nAmount; }