Почему это индексирует массив?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему это индексирует массив?

Сообщение Anonymous »

В статье Википедии «Неопределенное поведение» есть раздел, показывающий, что это неопределенное поведение в C/C++:

Код: Выделить всё

int arr[4] = { 0, 1, 2, 3 };
int* p = arr + 5;  // undefined behavior for indexing out of bounds
p = NULL;
int a = *p;        // undefined behavior for dereferencing a null pointer
Когда вы выполняете int* p = arr + 5; вы увеличиваете значение указателя на 5 * sizeof(int), но этого не происходит. разыменование выполнено, а индексация массива отсутствует, так почему же это неопределенное поведение соответствует этому?

Подробнее здесь: https://stackoverflow.com/questions/789 ... -the-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»