下面的代碼似乎在不應該運行時運行。在這個例子中:能夠訪問索引大於數組長度的元素
#include <iostream>
using namespace std;
int main()
{
char data[1];
cout<<"Enter data: ";
cin>>data;
cout<<data[2]<<endl;
}
輸入一個字符串的長度大於1(例如,「你好」),會產生輸出作爲如果陣列足夠大,以將其保持(例如,「L」)。當它試圖存儲一個比數組長的值時,或者當它試圖檢索一個索引大於數組長度的值時,它不應該拋出錯誤嗎?
它不能保證工作,所以你不應該依靠這種行爲 – weidi
相關問題:http://stackoverflow.com/questions/1239938/c-accesses-an-array-out-of-bounds-gives-no - 錯誤 - 爲什麼 – nurettin