Объявление массива в C ++ как array [1-00] по ошибке, но код по-прежнему работает, вывод неверен? - PullRequest
1 голос
/ 28 мая 2020

Когда я по ошибке объявляю массив как array [1-00], я не получил правильного ответа. Но когда я изменяю его на обычное объявление, например array [100], я очищаю все тестовые примеры. Может ли кто-нибудь дать какое-либо объяснение этой проблемы? Пожалуйста.

1 Ответ

2 голосов
/ 28 мая 2020

Вы объявили массив размером 1.

int arr[100]; //100 elements
int arr2[1]; //1 element
int arr3[1-00] // 1 - 0 = 1 element

доступ к элементам за пределами массива является неопределенным поведением, что означает, что компилятор может делать все, что захочет. Прочтите this для получения дополнительной информации о неопределенном поведении.

...