在编程序时,有时候调试的时候会遇到stack around variable was corrupted的问题,翻译成中文就是堆栈变量被损坏。
小白怎么也想不出是什么问题,后来找了很多文章觉得可能是数组太大了
本来是在函数里面定义一个int adjacmatr[600][600]; 使用蚁群算法的邻接矩阵,后来就出现上述问题。
但是定义成static int adjacmatr[600][600]; 使用静态变量就好了。
还有一个同样的问题就是在使用禁忌表的时候出现的问题,也是stack around variable was corrupted
代码如下:
#define N 52 //city size
#define M 52 //ant number
int tabu[M][N] ;
又出现堆栈损坏的情况,但是赋了初值又好了
int tabu[M][N] ={0};
本文探讨了在编程中遇到的stackaroundvariablewascorrupted错误,并提供了两种解决方案:一是将变量声明为静态变量,二是为数组赋初值。通过实际案例展示了如何避免堆栈损坏。
2848

被折叠的 条评论
为什么被折叠?



