Почему для ClassName* p = new ClassName(); рекомендуется вызывать «delete p;», а для «char *p = new char[1200];» рекомендуется вызывать «delete[] p;» ?
Я не понимаю потому, что рассуждаю, что в обоих случаях был выделен просто некий кусок «кучи». После первого new, правда, вызвался конструктор. Но ведь по сути, с точки зрения управления памятию, это просто два куска сплошного адресного пространства? Информация о них - адрес начала, размер. Почему разные операторы delete?
Я вас всех люблю, драгоценные мои.

Ответ на:
комментарий
от tia

Ответ на:
комментарий
от tia

Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от Booster

Ответ на:
комментарий
от Booster
Ответ на:
комментарий
от korvin_

Ответ на:
комментарий
от zJes
Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от vga

Ответ на:
комментарий
от lester
Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от zJes
Ответ на:
комментарий
от Booster

Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от Booster

Ответ на:
комментарий
от Led

Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от Booster

Ответ на:
комментарий
от zJes

Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от Booster

Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от korvin_
Ответ на:
комментарий
от korvin_


Ответ на:
комментарий
от jtootf
Ответ на:
комментарий
от Booster

Ответ на:
комментарий
от jtootf
Ответ на:
комментарий
от Booster
Ответ на:
комментарий
от lester
Ответ на:
комментарий
от Booster
Ответ на:
комментарий
от lester
Ответ на:
комментарий
от Booster
Ответ на:
комментарий
от lester
Ответ на:
комментарий
от Booster
Ответ на:
комментарий
от Booster
Ответ на:
комментарий
от lester
Ответ на:
комментарий
от m0rph
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.