LINUX.ORG.RU

ах да

Для справки: g++ 4.4.3

jreznot
() автор топика

Потому что значение указателя всё ещё находится в пределах виртуального адресного пространства процесса. Поэтому проверки на запись/удаление этой памяти отсутствуют для большей скорости.

Dendy ★★★★★
()

а чтобы на такое не натыкаться беззвучно и не сделать харакири (указателю delete дважды) используйте:

delete a;
a = NULL;

ибо указатель после удаления всё равно указывает на некоторую область памяти, присвоение ему NULL делает его невалидным и Ваш пример ломает себе ноги :)

shty ★★★★★
()

> память должна быть освобождена.

так она освобождена. когда попросишь - может выделиться.

а запрещать чтение или забивать её нулями никто не обязывался.

melkor217 ★★★★★
()

>забавно

Ничего забавного не вижу.

bk_ ★★
()
Ответ на: комментарий от namezys

new/delete зло

А как динамически выделять память в плюсах?

Dudraug ★★★★★
()
Ответ на: комментарий от zakot

Ты наверное вообще читать не умеешь? ОП знает, что код этот неверный и его интересовала причина, по которой такой код работает. Он где-нибудь говорил, что такой код правильный? Ты, что никогда при изучение нового языка не писал намеренно неправильный код, чтобы посмотреть на то, что будет.

Dudraug ★★★★★
()
Ответ на: комментарий от namezys

что нить типа std::auto_ptr

Только нужно следить чтобы циклических ссылок не возникало. Да и всё это не панацея, по любому придется думать над потреблением памяти.

Gorthauer ★★★★★
()
Ответ на: комментарий от Dudraug

В данном случае комментарий был именно к коду а не к вопросу. Я не говорил что ОП пишет неправильный код. Так что замечание про чтение не принимается. По сути вопроса это не противоречит стандарту языка. И да я видел такой код и в некоторых поделиях. Это ужос. Тут мы имеем дело с неопределенным поведением программы.

zakot
()
Ответ на: комментарий от zakot

По сути вопроса это не противоречит стандарту языка.

Неопределенное поведение (если так сказано в стандарте, а тут иначе и быть не может) - это то чего НЕ НАДО допускать, а значит не соответствует.

Dudraug ★★★★★
()
Ответ на: комментарий от Gorthauer

Я не об этом. Часто программист оставляет просто указатель, что-то с ним делает, и потом отдает его кому-то во владение.

Так вот в этот промежуток времени может быть исключение и ...

Указателем кто-то должен владеть всегда

namezys ★★★★
()
Ответ на: комментарий от zakot

Бессмысленное уточнение. Стандарту может соответствовать или нет поведение программы, но никак не сама программа.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

возможно я не совсем корректно выразил свою мысль

zakot
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.