vs2013工程,内存操作出错

hao931126 2018-01-22 12:55:25
近期,从git上clone了一个c版本的smartqq机器人,使用curllib进行http通信。改成c++工程,基本ok,但是我在vs2013上编译运行出现了一个问题,凡是涉及内存指针之类问题的地方很容易出错。
在初始化和清理urllib的接口中间,
例如我释放一个malloc申请的空间时,阻塞在free里回不来。
使用strcpy,memcpy,strncpy的时候,用strlen试返回值的长度对着呢,但指针下对应的内存没有数据,或者数据不是拷贝的那个。
vs15和17上就没问题,很好使。
请问为什么?
...全文
411 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hao931126 2018-01-24
  • 打赏
  • 举报
回复
引用 16 楼 zhao4zhong1 的回复:
[quote=引用 15 楼 hao931126 的回复:] [quote=引用 14 楼 zhao4zhong1 的回复:] 崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
free那个并不是崩溃,只是阻塞。 copy成功但是指针不对,有木有可能是优化问题=,=[/quote] 理解讨论之前请先学会如何观察! 计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 多用小脑和手,少用大脑、眼睛和嘴,会更快地学会编程! 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步Debug版对应汇编一行! 单步Debug版对应汇编千行不如单步Release版对应汇编一行! 不会单步Release版对应汇编?在你想单步Release版C/C++代码片断的前面临时加一句DebugBreak();重建所有,然后在IDE中运行。(一般人我不告诉他!) [/quote] 哈哈哈,感谢大佬。确实我这边提供的信息太少了,结贴了
赵4老师 2018-01-23
  • 打赏
  • 举报
回复
引用 15 楼 hao931126 的回复:
[quote=引用 14 楼 zhao4zhong1 的回复:] 崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
free那个并不是崩溃,只是阻塞。 copy成功但是指针不对,有木有可能是优化问题=,=[/quote] 理解讨论之前请先学会如何观察! 计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 多用小脑和手,少用大脑、眼睛和嘴,会更快地学会编程! 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步Debug版对应汇编一行! 单步Debug版对应汇编千行不如单步Release版对应汇编一行! 不会单步Release版对应汇编?在你想单步Release版C/C++代码片断的前面临时加一句DebugBreak();重建所有,然后在IDE中运行。(一般人我不告诉他!
hao931126 2018-01-22
  • 打赏
  • 举报
回复
引用 14 楼 zhao4zhong1 的回复:
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
free那个并不是崩溃,只是阻塞。 copy成功但是指针不对,有木有可能是优化问题=,=
赵4老师 2018-01-22
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
paschen 2018-01-22
  • 打赏
  • 举报
回复
引用 11 楼 hao931126的回复:
[quote=引用 8 楼 paschen 的回复:] VS也是会存在BUG的,也在不断更新
求大佬帮忙看看什么情况[/quote] 描述清楚什么问题,不知看什么!
hao931126 2018-01-22
  • 打赏
  • 举报
回复
引用 8 楼 paschen 的回复:
VS也是会存在BUG的,也在不断更新
求大佬帮忙看看什么情况
hao931126 2018-01-22
  • 打赏
  • 举报
回复

还有这种问题
hao931126 2018-01-22
  • 打赏
  • 举报
回复

感觉上不是简单的bug,而是哪个地方出现了问题
paschen 2018-01-22
  • 打赏
  • 举报
回复
VS也是会存在BUG的,也在不断更新
hao931126 2018-01-22
  • 打赏
  • 举报
回复
引用 6 楼 hao931126 的回复:
[quote=引用 4 楼 zhao4zhong1 的回复:] 也许只是因为你VS2013没打最新的SP补丁。
更新后确实好用了,能提供一些可参考问题原因的猜测么,主要是好奇原因[/quote] =,= 真乱,运行好使,重新编译提示我是17编译的不支持,然后用13编译问题又出现了
hao931126 2018-01-22
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
也许只是因为你VS2013没打最新的SP补丁。
更新后确实好用了,能提供一些可参考问题原因的猜测么,主要是好奇原因
hao931126 2018-01-22
  • 打赏
  • 举报
回复
更新了下vs2013问题消失了,当前不再出现问题了
赵4老师 2018-01-22
  • 打赏
  • 举报
回复
也许只是因为你VS2013没打最新的SP补丁。
hao931126 2018-01-22
  • 打赏
  • 举报
回复
额,大佬我不是很理解啊
hao931126 2018-01-22
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
百度搜“VS2013和VS2015、VS2017的区别”
大佬并没有看到有什么合理的解释啊
赵4老师 2018-01-22
  • 打赏
  • 举报
回复
百度搜“VS2013和VS2015、VS2017的区别”

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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