2013-01-04 64 views
0

可能重複:
C++ Accesses an Array out of bounds gives no error, why?陣列超出範圍檢測

我有使用Qt創建者在Windows陣列經常發生的問題。當我的程序試圖訪問一個不存在的內存單元時,會出現randomiz崩潰,所以很難調試。

當我的程序訪問一個不存在的存儲單元時,是否有任何庫或選項可以檢查以停止程序?

實施例:

int * toto = new int [4]; 
toto[6] =2; 

引出提到隨機行爲。

我在使用Qt創建器4.8.1的Windows 7上。

+1

恐怕你必須使用std :: vector。看到這個答案:http://stackoverflow.com/a/1239977/1284631 – user1284631

+0

不是標準:矢量,但QVector – TheHorse

回答

0

正如註釋中提到的@axeoth,無法檢查索引是否超出C++數組的範圍。

如果你正在尋找特定於Qt的容器類,你可以看看QList<T>QVector<T>

你可以在Qt Container Classes找到更多細節。

+0

非常感謝你的答案和你的鏈接夥計。總結C++數組的訪問速度非常快,但無法輕鬆進行調試。 – matthieu

+0

訪問速度與std :: vector和數組相同。見例如http://stackoverflow.com/questions/381621/using-arrays-or-stdvectors-in-c-whats-the-performance-gap假設否則沒有測量是過早的非優化...;) –