Почему это индексирует массив?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

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