Динамический массив C++ - Вопросы по С+

Вопрос Динамический массив C++

Регистрация
22 Сен 2013
Сообщения
82
Репутация
1
Спасибо
0
Монет
0
Допустим я создаю динамический массив из 5 элементов
int *A = new int[5];

Почему в таком случае если я попытаюсь обратиться к 10 элементу и например вывести его на экран cout<<A[10] он его найдет и выведет какое то значение, а не выдаст ошибку? Получается, массив в таком случае автоматически возрастает до массива с 10 элементами?
 
Регистрация
4 Авг 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
Это место в памяти, тебе же дают какой-то кусок побольше который не лезет в другие области. Вот ошибки и нет, си позволяет гулять так. Массив не возрастает, при удалении delete[] A; ты удалишь память на 5 элементов но твой десятый не изменится. Или же через некоторое время этот десятый будет иметь другое значение, его займут... а ты будешь думать, что массив стал на 11 элементов
 
Регистрация
16 Ноя 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
Компилятор просто отсчитывает десятое место для int с адреса начала массива, не проверяя, где он заканчивается. Это место обычно уже отведено для какой-то другой переменной, значение которой при записи туда затрется. C++ -язык для профессионалов, упор сделан на быстродействие программ, а проверка при обращении замедляла бы выполнение программы,
 
Сверху Снизу