我有~15'000行C/C++程序和其中某處 - 簡單數組用於超出邊界(它是我的猜測),原因是未定義的行爲'發生(好吧,不,我的CDROM不是隨機打開的),但堆內存是從代碼中的某處修改的!一些定義的整數內存只是進入了它不應該發生的內存的隨機異常,如果我刪除或改變任何異常發生在其他地方,奇怪和scarry ...所以,我需要用任何東西來替換100個數組什麼會檢查邊界正常。而且任何事情都需要最小的修改。最接近可能的解決方案,用一些可以檢查邊界的東西來替換數組C++
我可以創建一個類模仿數組行爲,但檢查邊界,所以我可以輕鬆地更改所有數組?或者你會提供哪種解決方案?我有點新C++,任何例子對我來說都是黃金。
我使用Windows 7, 說簡單數組我的意思是:
int data[400];
data[20] = 4; // its fine
data[-13] = 9; // opens cdrom, or formats hard drive, or works till your windows gets updated
你可以拿出你的一些代碼,以便我們看到嗎? – bobtheboy 2014-12-05 00:23:31
['std :: array'](http://en.cppreference.com/w/cpp/container/array) – 2014-12-05 00:24:45
調試確實非常棘手。我建議使用valgrind或等效工具,可以爲您提供有關無效內存訪問的更多信息。 – SirDarius 2014-12-05 00:25:28