下面两行代码是数组越界访问,将可能导致程序崩溃。
int narray[x];
narray[y] = 10;
这里x和y都是常数。例如
int narray[5];
narray[8] = 10;
现象总结如下:
当y==x或y==-1时,debug调试运行会报错:
Run-Time Check Failure #2 - Stack around the variable 'narray' was corrupted.
但是y>x或y<-1时却不报错。
当y==x时,release版会挂掉,但没能生成minidump。
有时,数组访问越界在release版不会当时挂掉,程序还一直能运行。很奇怪。