读书人

为什么报Run-Time Check Failure #2的

发布时间: 2012-03-04 11:13:33 作者: rapoo

为什么报Run-Time Check Failure #2的错误?
char m_Scan_Char[] = "0 ";
printf( "Scan: ");
scanf( "%s ",m_Scan_Char);

int m_Comp = strcmp(m_Scan_Char,m_SN);
if (m_Comp == 0)
{
printf( "Pass....\n ");
}
else
{
printf( "Fail....\n ");
return false;
}

return true;

运行完后,弹出对话框,报的错误是:
Run-Time Check Failure #2 - Stack around the variable 'm_Scan_Char ' was corrupted.



[解决办法]
char m_Scan_Char[] = "0 "; // 这个大小才1
printf( "Scan: ");
scanf( "%s ",m_Scan_Char); // 如果这里写入字符必将比 m_Scan_Char 大,写到其它空间去了

所以在debug版,会告诉你 堆栈被破坏

改成

char m_Scan_Char[128] = "0 ";

读书人网 >C++

热点推荐