Показать сообщение отдельно
Старый 04.06.2014, 15:18   #7
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: delete [] const char

Во-первых, я попросил бы не касаться моих родственников.
Во-вторых - перестать истерить.
В-третьих - замечание интересное, но в рамках уже сказанного выше - не актуальное.

Я прям так и вижу, как пользователь брызжа слюной набирал этот гневный пост (даже поленился фрагмент цитирования выделить, хотя отвечает лишь на часть поста).

Вот если б вместо эмоций повнимательнее присмотреться к:
Меня всё устраивает, я ко всему привык, я это знаю. НО. Не кажется ли вам это слегка нелогичным?
то можно сделать вывод, что вопрос то стоит несколько в иной плоскости. И именно такие "метафизические" вопросы я частенько и задаю, предварив их соответствующей пометкой. И именно к этому мы и пришли "удаление не есть модификация" (хоть несколько странно с обывательской точки зрения, но объекты как-то надо уничтожать [хотя на практике, компилятор на вряд ли будет очищать память из-под константных строк, т.к. изначально вовлекает их в оптимизации]).
const char *x;
    const char *y;

    x="123";
    cout<<(void*)x<<endl;
    delete[]x;
    x="234";
    cout<<(void*)x<<endl;

    y=new char[3];
    cout<<(void*)y<<endl;
    delete[]y;
    y=new char[3];
    cout<<(void*)y<<endl;
На самом деле содержимое x ("123") не удалится, память для "234" будет взята новая. При этом y удаляется "по-настоящему": память для второго массива имеет тот же адрес, т.к. она уже доступна для использования.


И ещё:
Сообщение от pozitiffcat Посмотреть сообщение
массив грохнуть можно (указатель точнее), данные менять нет,
смею указать на ошибку: указатель останется "живым". Он, в отличии от адресуемого куска памяти, в приведённых примерах создаётся не в куче (представляет собой т.н. в некоторых книгах "автоматическую" переменную), удалён при вызове delete не будет, и повторно может использоваться для хранения иных адресов. "Грохнута", как Вы выражаетесь, будет память, адресуемая данным указателем. Но впрочем, к чему эти формальности, ведь "в интернете кто-то не прав".
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием