Следующий код, кажется, работает, когда он не должен. В этом примере:Возможность доступа к элементам с индексом Больше, чем длина массива
#include <iostream>
using namespace std;
int main()
{
char data[1];
cout<<"Enter data: ";
cin>>data;
cout<<data[2]<<endl;
}
Ввод строки с длиной больше, чем 1 (например, «Привет»), будет производить выход, как если массив был достаточно большим, чтобы удерживать его (например, «л»). Должно ли это не возникать ошибка при попытке сохранить значение, которое было больше, чем массив, или когда оно пыталось получить значение с индексом, большим длины массива?
Не гарантируется работа, так что вы не должны полагаться на это поведение. – weidi
Связанный вопрос: http://stackoverflow.com/questions/1239938/c-accesses-an-array-out-of-bounds-gives-no -error-why – nurettin