powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что будет в случае такого присваивания?
9 сообщений из 9, страница 1 из 1
Что будет в случае такого присваивания?
    #39697853
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет ли пробой памяти? может ли упасть приложение, если функция с таким выражением вызывается в цикле много раз?


char* ptr;
...


ptr = '\0';

//вместо
//*ptr = '\0';
...
Рейтинг: 0 / 0
Что будет в случае такого присваивания?
    #39697859
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это равносильно
Код: plaintext
1.
ptr = 0;


или
Код: plaintext
1.
ptr = NULL;


Затем при обращении к *ptr будет вылет из-за обращения к несуществующей памяти.

ИМХО Возможно компилятор на такую опечатку ругнется, не проверял.
...
Рейтинг: 0 / 0
Что будет в случае такого присваивания?
    #39697864
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В некоторых случаях будет ошибка компиляции.
В некоторых - всего лишь предупреждение.
В остальных случаях это равноценно
Код: sql
1.
ptr = NULL;


которое, конечно, не упадёт прямо здесь и сейчас.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что будет в случае такого присваивания?
    #39697874
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЭто равносильно
Код: plaintext
1.
ptr = 0;


или
Код: plaintext
1.
ptr = NULL;


Затем при обращении к *ptr будет вылет из-за обращения к несуществующей памяти.

ИМХО Возможно компилятор на такую опечатку ругнется, не проверял.

Компилятор может и дает где-то варнинг.
Но по сути я уничтожаю указатель и дальнейшее обращение по нему может дать непрдесказуемое поведение
...
Рейтинг: 0 / 0
Что будет в случае такого присваивания?
    #39697882
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kНо по сути я уничтожаю указатель и дальнейшее обращение по нему может дать непрдесказуемое поведение
Вполне предсказуемое. Обращение по адресу 0 даст вылет проги из-за обращения к несуществующей памяти.
В любой ОС по адресу 0 нет памяти, т.к. это своеобразная ловушка для подобных ситуаций.

Если предварительно была выделена память с сохранением указателя в ptr, то получишь утечку памяти, если после не будет обращения к *ptr.
...
Рейтинг: 0 / 0
Что будет в случае такого присваивания?
    #39697919
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T.....В любой ОС по адресу 0 нет памяти, т.к. это своеобразная ловушка для подобных ситуаций.
А куда она делась?

Все там есть. И в любой ОС _где нет защиты памяти_, ничего вылетать просто не может. Там даже такой ошибки "обращение к несуществующей памяти" просто нет.

А по адресу 0000:0000 в IBM PC и MS DOS находилась таблица векторов прерываний. Вполне возможно. что и сейчас на том же самом месте )))

IMHO & AFAIK
...
Рейтинг: 0 / 0
Что будет в случае такого присваивания?
    #39697928
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevА по адресу 0000:0000 в IBM PC и MS DOS находилась таблица векторов прерываний... где INT 0 было "divide by zero".
Эрудиция, конечно, хорошо, но "меня опять терзают смутные сомнения", что возможность обращения по этому адресу не даёт вам никаких плюшек и профитов.
...
Рейтинг: 0 / 0
Что будет в случае такого присваивания?
    #39697966
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msinfo32 пишет что:

0x00000000-0x0000006F - шина PCI
0x00000020- ... 0x0000003В - программируемый контроллер прерываний
................

В то же время программа RamMap.exe сообщает что пул до 0х3000 неактивен и не может быть использован.
Кстати, эта же программа показывает физические адреса всех модулей, программ и т.п.

Что именно находится по адресу 0х0000000000 в памяти мне лично непонятно и скорее всего при подобном обращении
будет просто ошибка AV...
...
Рейтинг: 0 / 0
Что будет в случае такого присваивания?
    #39698129
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что будет в случае такого присваивания?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]