2013-04-10 59 views
1

我正在研究蠻力算法的某些實現,這看起來像是一個基本問題,但我無法使其工作。試圖讀取或寫入受保護的內存。這通常表明其他內存已損壞

下面的代碼中斷程序的行:

found[next] = j; 

陣列宣言:

int* found = new int[30]; 

j是計數器,用於循環增加英寸像找到的代碼[0] = 0工作正常。如果我使用變量索引和值它崩潰。 Visual Studio 2012中的錯誤是「試圖讀取或寫入受保護的內存,這通常表示其他內存已損壞」。

我使用int * becouse它在C++ dll中,我用c#應用程序。

+0

'next'從哪裏來?它大於'29'嗎? – 2013-04-10 12:58:36

+0

不要使用像「'30」這樣的幻數。相反,使用值的邏輯依賴來表達容器,並抽象地引用這些值。那麼這種愚蠢的錯誤就不太可能發生。 – 2013-04-10 13:01:08

+0

不,它小於30.實際上,它是0. – 2013-04-10 13:02:57

回答

0

您需要控制下一個的值。最有可能的是,它會超出你的陣列的範圍

相關問題