Run-Time Check Failure #2
在进行对称矩阵压缩时发生了这个bug,在检查后发现是数组下标有溢出。
例如:对对称矩阵压缩(矩阵下标1开始,数组下标0开始)
在for循环输入数组(int i=0;i<n+1;i++)但是内循环中(int j=0;i<m;j++)对应下标不同所以要主要循环变量的控制,而在输出时使用(int i=0;i<n;i++)就会发生下标的不匹配发生溢出现象。在程序运行时就会产生断点报错,溢出的下标对应的数组的内容会出现乱码!
Run-Time Check Failure #2:
分析:
1, 这个错误一般是因为给变量分配的空间出现越界访问导致的(绝大部分是数组越界)。
可能出现情况:
- strcpy、memcpy、strncpy、stpcpy、bcopy等拷贝区的大小不匹配,引起冲突或溢出造成的
- 当使用 memset/ZeroMemory初始化数据结构体 structure或数组 array时,由于大小设置错误引起的(绝大部分是该问题)
- 可能是指针移动,指向错误
- 还有可能是变量赋值了,但是变量没有找到