当前位置: 代码迷 >> VC >> 零莫名其妙变成8
  详细解决方案

零莫名其妙变成8

热度:1947   发布时间:2013-02-25 00:00:00.0
0莫名其妙变成8
最近调查一个问题,发现一个short[33]的数组,里面本来都是0、1的,某些时候会莫名其妙的变成8.不知道哪位大神能帮忙解答一下。
------最佳解决方案--------------------------------------------------------
注意
c++ 字符串以\0结尾
------其他解决方案--------------------------------------------------------
可能是数组经过某个函数被修改。
------其他解决方案--------------------------------------------------------
只是偶然情况下会这样,程序可能执行几百次才会出现一次这样的情况,我们是通过日志发现的。
------其他解决方案--------------------------------------------------------
strparam是前台传过来的长度为33的串,后台通过下面代码改变
m_anParam的值,其他地方m_anParam不再变化。目前分析原因2种:
一种strparam传过来之前在前台已经变成88888888....;另外就是在下面代码中偶然出现
m_anParam[i]=8;
for(int i=0; i < strparam; i++)
{
   char sParam = strparam[i];
   m_app->m_anParam[i] = short(atoi(&sParam ));
}
------其他解决方案--------------------------------------------------------
数组使用前有没有置0 memset。

------其他解决方案--------------------------------------------------------
可能和5楼说的一样,memset置零了