|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.11.2015, 09:56 | #21 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 12.11.2015 в 10:05. |
|
12.11.2015, 10:05 | #22 | |
Форумчанин
Регистрация: 03.08.2013
Сообщений: 208
|
Цитата:
|
|
12.11.2015, 10:28 | #23 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Причем тут освобождение? delete не обязан нулями память заполнять, только помечать как свободную.
Поэтому (в зависимости от реализации компилятора) вполне возможно что там еще останутся старые данные, пока кто-нибудь не занял этот кусок и не затер их. Но разыменовывать указатель после delete в любом случае не стоит, это неопределенное поведение. Присваивание nullptr/0/... всего лишь делает его определенным — программа гарантированно "упадет". (ну или просто для проверок на нулл если это глобальная переменная какая-нибудь, чтоб выделить память и создать объект заново) http://rextester.com/SAVZAA11112
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 12.11.2015 в 10:31. |
12.11.2015, 10:52 | #24 | |
Форумчанин
Регистрация: 03.08.2013
Сообщений: 208
|
Цитата:
Код:
-------- Да. Действительно nullptr ничего не затирает! По крайне мере в стандарте x0 компилятора gcc (g++) Код:
Код:
Последний раз редактировалось chipside; 12.11.2015 в 10:59. |
|
12.11.2015, 11:10 | #25 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Вам уже 100 раз сказали нуллпоинтер - это просто спец. константа для указателей (такая же как и 11111, или 2222, или 4444, или 901901234984011470).
Она затирает только значение указателя, к данным по этому указателю она никак не относится, совсем. Цитата:
Код:
Последний раз редактировалось p51x; 12.11.2015 в 11:19. |
|
12.11.2015, 11:15 | #26 | ||||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
представьте что память это лист линейной бумаги. вы запросили пять первых линий, исписали их, потом сказали что они вам больше не нужны. но если вы лезите у этим 5 линиям, думаете ваши данные куда-то делись от этого? нет, то что писалось так и останется. а менеджер память вернет этот лист только когда он весь не нужен будет, а не оторвет ваши 5 строчек. обратится можно и по рандомному указателю, и если попадете где есть данные, то вы их прочтете. нулевой указатель(nullptr,0,NULL) это указатель который гарантировано не читается. потому и будет ошибка.(кстати с указателем 0x00000001 у вам тоже прога упадет, но он же не nullptr) nullptr/0/NULL просто индикация что указатель невалиден. Цитата:
Цитата:
ОС обычно вернет ресурсы, но это не хорошо в общем-то. Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||||
12.11.2015, 11:17 | #27 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Чот с вами бесполезно общаться, вы не читаете/не понимаете и делаете какие-то странные выводы на основе своих обрывков знаний. Откуда-то придумали про какую-то альтернативу и отказ.
Код выше странный, непонятно почему вы решили, что заполнение строки пробелами чем-то поможет, и \0 вроде и так fgets добавляется, но вы как минимум присваиваете \0 в несуществующий 1025-й элемент. nullptr от 0/NULL отличается например в ситуации когда есть перегрузка функции для int и для указателя (char*, int*, WhatEver*) http://stackoverflow.com/questions/1...-using-nullptr Цитата:
Зомби-процессы это вообще не о том.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 12.11.2015 в 11:22. |
|
12.11.2015, 11:25 | #28 |
Форумчанин
Регистрация: 03.08.2013
Сообщений: 208
|
Спасибо всем, кто принял участие в обсуждении. До меня, наконец-то дошло!
|
12.11.2015, 14:57 | #29 | |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
Цитата:
|
|
12.11.2015, 15:18 | #30 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Да какие деструкторы если он почти на чистом Си пишет. Из С++ тут кроме std::cout особо ничего нет
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
26|error: 'nullptr' was not declared in this scope| | taras-proger | Общие вопросы C/C++ | 2 | 08.09.2015 14:02 |
Определить по коду алгоритм сортировки и исправить специально допущенные в коде ошибки ( Turbo Delphi ) | Just-Joni | Помощь студентам | 0 | 26.12.2013 12:24 |
Не получается найти ошибку в коде нужно определить размеры дисков C++ Borland | kolyok333 | Помощь студентам | 4 | 15.01.2012 15:53 |
Cuda, openCL: как определить, есть ли поддержка | xpu | Visual C++ | 1 | 27.08.2011 03:36 |
Поддержка казахского языка. Как? | eremin | Общие вопросы Delphi | 1 | 01.12.2007 06:30 |