![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AXELman4ever |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 31 Регистрация: 22.9.2011 Пользователь №: 2902 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Имеется такая запись:
char *b = new char[10]; b[0] = '0'; b[1] = '1'; b[2] = '2'; ... Объясните пожалуйста, почему для записи значения в чар (как я понимаю, по указателю), не требуется его разыменовывать? Я так понимаю что для массивов любого типа всегда форма записи такая, но почему разыменование не требуется? да, кстати... и при удалении массива чаров delete[] b; я по прежнему могу обратиться к указателю и проверить доступность значений по индексу. А каков же смысл тогда delete[] ? |
|
|
![]() |
Mingun |
![]()
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 28.9.2009 Пользователь №: 1122 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Указатель обнулять и вправду не обязательно. Всё будет работать и так. Однако обнуление указателя считается хорошим тоном, поскольку в таком случае вы схлопочете access violation при обращении по нулевому адресу. Что, согласитесь, значительно упрощает поиск проблемы, нежели внезапная неправильная работа программы в исключительных случаях (которых годами может не быть, но которые появляются в самый неподходящий момент
![]() |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 3.7.2025, 15:54 |