首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-04 
为什么报Run-Time Check Failure #2的错误?charm_Scan_Char[]0 printf( Scan: )scanf( %s ,m_Sca

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

热点排行