Почему массив выводит что-то, если он пустой?

Рейтинг: -1Ответов: 1Опубликовано: 01.04.2023

Начал изучать массивы и столкнулся с вопросом, почему данный массив что-либо выводит, если он будто бы пустой.

int val[] = {};
cout << val[0]; // -136178632
cout << val[1]; // 1

Ответы

▲ 0Принят

ну ты вышел за границы массива и тебе просто мусор из памяти скидывает

val[] оно же int* val; - указатель на первый элемент массива(нулевой) int == 4 байта, значит ты сдвинулся допустим с ячейка 0x0016 на 0x0020, оттуда ты достал единицу. можешь перезапустить ide и цифры скорее всего будут другими, а могут повториться. зависит от того какой участок памяти сейчас доступен.