Какова цель выделения определенного объема памяти для массивов в C ++?

В этом семестре я учусь на курсе по структурам данных в C ++, и сегодня вечером я наткнулся на то, чего не совсем понимаю. Скажем, я должен был создать указатель на массив в куче:

int* arrayPtr = new int [4];

Я могу получить доступ к этому массиву, используя синтаксис указателя

int value = *(arrayPtr + index);

Но если бы я добавил другое значение в позицию памяти сразу после конца пространства, выделенного для массива, я бы тогда мог получить к нему доступ

*(arrayPtr + 4) = 0;
int nextPos = *(arrayPtr + 4);
//the value of nextPos will be 0, or whatever value I previously filled that space with

Позиция в памяти * (arrayPtr + 4) находится за концом пространства, выделенного для массива. Но, насколько я понимаю, вышесказанное все равно не вызовет никаких проблем. Итак, помимо требования C ++, зачем даже указывать массивы определенного размера при их объявлении?

Ответы на вопрос(0)

Ваш ответ на вопрос