crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

AXELman4ever
  опции профиля:
сообщение 30.9.2011, 18:52
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 31
Регистрация: 22.9.2011
Пользователь №: 2902

Спасибо сказали: 0 раз(а)




Репутация:   0  


Имеется такая запись:

char *b = new char[10];

b[0] = '0';
b[1] = '1';
b[2] = '2';
...



Объясните пожалуйста, почему для записи значения в чар (как я понимаю, по указателю), не требуется его разыменовывать?
Я так понимаю что для массивов любого типа всегда форма записи такая, но почему разыменование не требуется?

да, кстати... и при удалении массива чаров

delete[] b;

я по прежнему могу обратиться к указателю и проверить доступность значений по индексу. А каков же смысл тогда delete[] ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Mingun
  опции профиля:
сообщение 1.10.2011, 19:55
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 28.9.2009
Пользователь №: 1122

Спасибо сказали: 0 раз(а)




Репутация:   0  


Указатель обнулять и вправду не обязательно. Всё будет работать и так. Однако обнуление указателя считается хорошим тоном, поскольку в таком случае вы схлопочете access violation при обращении по нулевому адресу. Что, согласитесь, значительно упрощает поиск проблемы, нежели внезапная неправильная работа программы в исключительных случаях (которых годами может не быть, но которые появляются в самый неподходящий момент :huh:).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 3.7.2025, 15:54