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




