错误记录
整数越界的问题
//---------------------------------------------------------------
int fun();
float fResult = fun() * fun();
//----------------------------------------------------------------
这样写还是可能越界
fun()*fun()的结果类型依然是int,只不过在赋值时,强转成float
//---------------------------------------------------------------
int fun();
float fTemp = (float)fun();
float fResult = fTemp * fTemp;
//----------------------------------------------------------------
栈回收错误的问题
uint8 ua,ur,ug,ub;
sscanf(fs_szDicStr.c_str(), "#%X#%X#%X#%X", &ua, &ur, &ug, &ub);
%X是按照int32类型的长度往uint8类型的ua,ur,ug,ub中写,这就造成了写越界了。程序回收ua,ur,ug,ub时,栈ub已经被写坏了。
应该改成
int32 ua,ur,ug,ub;
sscanf(fs_szDicStr.c_str(), "#%X#%X#%X#%X", &ua, &ur, &ug, &ub);

浙公网安备 33010602011771号