为什么报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 ";