莫名其妙的坏指针,求助!。。

stackoverlow 2012-01-09 03:51:41
		
Address+= (DWORD)lpMemory;
sprintf (szBuffer, szMsgImport, Address, lpFile->OriginalFirstThunk, lpFile->TimeDateStamp, lpFile->ForwarderChain,lpFile->FirstThunk);//这个函数我一调用就坏指针,注释掉就没问题
SendDlgItemMessageA(hWinMain,IDC_EDIT,EM_REPLACESEL,0,(LPARAM)szBuffer);


RT,lpMemory是内存映像文件的指针,sprintf这个函数我不调用后面都正常,一调用就坏了,调试发现一调用完lpMemory就成了<Bad Ptr>,值完全变了导致后面运行不下去
求救啊莫名其妙的指针就坏了T T..高人快来指教....
...全文
167 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-01-09
  • 打赏
  • 举报
回复
建议改用
_snprintf
Write formatted data to a string.

int _snprintf( char *buffer, size_t count, const char *format [, argument] ... );

stackoverlow 2012-01-09
  • 打赏
  • 举报
回复
解决了,谢谢各位啊!原来是szBuffer缓冲太小了。。。
真是有一点问题都会折腾死人啊
赵4老师 2012-01-09
  • 打赏
  • 举报
回复
将szBuffer的大小加大。
检查szMsgImport中%的个数是不是5个以及和后面五个参数的类型是否匹配。
zgdqlc 2012-01-09
  • 打赏
  • 举报
回复
Address+= (DWORD)lpMemory;
为什么要使用Address+= ?,Address的原始地址是多少?
spark_lx 2012-01-09
  • 打赏
  • 举报
回复
int sprintf(char *string, char *farmat [,argument,...]);
不晓得szMsgImport是撒
  • 打赏
  • 举报
回复
猜测,溢出了吧。
nice_cxf 2012-01-09
  • 打赏
  • 举报
回复
在sprintf那里设置一个断点,看szMsgImport格式和后边的数据是否相符,估计格式错了

64,684

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧