版权声明:本文为博主原创文章,未经博主允许不得转载,博客地址:http://blog.csdn.net/mars_xiaolei。 https://blog.csdn.net/mars_xiaolei/article/details/82854963
在调试MFC程序时,关闭对话框窗口时遇到了这个问题:
Run-Time Check Failure #2 - Stack around the variable 'dlg' was corrupted.
这句话的意思是:
运行时检查失败#2 -围绕变量“dlg”的堆栈被损坏。
然后去网上搜了一下,很有可能是数组越界的问题,于是我找到了dlg声明的地方,没有什么问题啊
CCPP2018Dlg dlg;
m_pMainWnd = &dlg;
也有可能是其它地方数组越界的错误,于是找到了OnInitDialog()函数,果然发现了一个数组越界
for (int i=0;i<8;i++)
{
video[MAX_VIDEO_CHANNEL]=0.0;
}
出现问题的原因就是忘记将MAX_VIDEO_CHANNEL替换为i了,上面的MAX_VIDEO_CHANNEL其实是一个宏定义,值为16,超过了8就导致了数组越界,修改为i就行了。
出现这个问题的地方可能不一样,但是原因应该都差不多,好好找找还是能找出来的。