2013-04-10 58 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

您需要控制下一个的值。最有可能的是,它会超出你的阵列的范围

相关问题