缓冲区溢出引起奇怪的bug

来源:互联网 发布:java 限制登录次数 编辑:程序博客网 时间:2024/05/22 10:25

上个星期给通讯录添加一个拼音检索功能,在做的过程里,出现一个问题:在主调函数里的局部变量

值被莫名其妙的清空了。

char tname[32] = {0};strcpy(tname, name);_strupr(tname);getpyhead(tpy, g_lib_records->recordArray[i].saveInfo.name);_strupr(tpy);

即在上面代码里的tname变量在调用getpyhead()函数后,值被清空了。对这个问题的第一反应

是:栈溢出。不过这完全是胡猜的。上网查原因,也没找到答案。就开始浏览代码,看看哪些的内

存操作不正常,结果发现了在被调函数里,有个内存初始化操作越界了(   memset(tpy, 0, 64)    ),

外面传进去的是32字节,里面却清了64字节。就这样把tname的值给清了。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 机械表机芯坏了怎么办 银镀玫瑰金褪色怎么办 苹果七p玫瑰金掉漆怎么办 美度镀金表掉色怎么办 吃了发黑的香菇怎么办 脸上的皮肤暗黄怎么办 吃了变黑的香菇怎么办 怀孕喝了玫瑰茶怎么办 孕妇爱喝茉莉茶怎么办 干菊花生虫了该怎么办 黑枸杞放了两年怎么办 来大姨妈喝茶了怎么办 干柠檬片过期了怎么办 山地玫瑰根黑了怎么办 带18k的金过敏怎么办 18k钻戒断了怎么办 18k钻戒戒托变色怎么办 苹果七中间按键脱漆怎么办 苹果手机屏幕边缘掉漆了怎么办 十八k白金变色了怎么办 手机后面掉漆了怎么办 玫瑰金戒指刮花了怎么办 玫瑰金手镯刮花了怎么办 玫瑰金链子断了怎么办 dw玫瑰金掉色了怎么办 6s玫瑰金氧化了怎么办 书本湿的很严重怎么办 除湿盒的水满了怎么办 书被水泡变黄了怎么办 文件纸被弄皱了怎么办 纸的一角皱了怎么办 裤子被雨水打湿变色了怎么办 书本上粘了有油怎么办 手被水泡了皱了怎么办 水泡破了感染了怎么办 夏天腋下出汗会弄湿衣服怎么办 夏天腋下出汗多弄湿衣服怎么办 上眼皮干燥起皮怎么办 怀孕下面湿又痒怎么办 内裤穿久了有异味怎么办 刨腹产私处捂烂了怎么办