Нет, просто вы записали в область памяти за пределами места, выделенного под массив. Это называется buffer overflow и может привести к непредсказуемым последствиям - например, если сразу за массивом выделена другая важная переменная, она может быть перезаписана. Отсутствие проверки ввода пользователя на допустимые границы может быть серьёзной уязвимостью безопасности - локальные переменные выделяются на стеке, в том числе и массивы. Выход за пределы массива позволит перезаписать адрес возврата (который тоже расположен на стеке) и в теории выполнить произвольный код.
С целью предотвращения такого поведения в языках более высокого уровня при каждом присваивании проверяются границы доступной памяти, не позволяя "выстрелить себе в ногу". В C++ такого нет в угоду большей производительности.