想问一下野指针导致内存出错的机制

略冷 2014-04-16 09:32:48
同标题,两天前写程序时出现的Assertion Failed。然后上网查结果听说可能是野指针的问题。由于自己还是个菜鸟,怎么都找不到出错的位置,无法解决问题,于是抓紧重新写了一个程序。不过回过头来很好奇野指针的问题,一个空指针或者一个引用错误的指针怎么会导致内存溢出一类的问题呢?想问一下
...全文
132 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
FancyMouse 2014-04-16
  • 打赏
  • 举报
回复
lz你需要去读一下组成原理,知道虚拟地址怎么回事,知道操作系统怎么管理内存的,就大概知道怎么回事了。
calven_2521 2014-04-16
  • 打赏
  • 举报
回复
定义了一个指针但是未被初始化就使用了。
堂风 2014-04-16
  • 打赏
  • 举报
回复
我的理解就是指针记录一个地址,野指针就是一个记录了一个可用的地址,但并不是一个正确的地址,这样就导致了错误。 如,创建一个指针没有初始化,使用了缺省值,这个指针指向的内容就不能确定,但这个指针确实是合法的。或者当一个指针用完之后,没有置为null,让人误以为是合法的。或者指针指向的东西已经不存在了(所谓的不存在,我的理解就是它所占用的内存被标记成可以被重新使用,这样当指针再次访问过来的时候,它是什么状态就不能确定了)。
emberfarkas 2014-04-16
  • 打赏
  • 举报
回复
你这个断言已经是个野指针了。
turing-complete 2014-04-16
  • 打赏
  • 举报
回复
听说过整数溢出和堆栈溢出,没听说过内存溢出。
赵4老师 2014-04-16
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

65,208

社区成员

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

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