重工电子论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 4101|回复: 2
打印 上一主题 下一主题

关于指针的问题

[复制链接]

20

主题

74

帖子

382

积分

学生管理组

Rank: 8Rank: 8

积分
382
跳转到指定楼层
楼主
发表于 2018-7-22 22:57:32 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
最近被人问到一个这样的问题:
        假设某程序定义了一个全局gPtr,初始化时malloc了很大的一块内存区域(malloc执行是成功的),程序运行中若干线程都会使用到gPtr,但是都不会去释放它。当程序运行了若干天之后,程序崩溃了,定位发现gPtr的值变成了一个很小的值(如0x20) ,gPtr变为非法值可能的原因有哪些
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

20

主题

74

帖子

382

积分

学生管理组

Rank: 8Rank: 8

积分
382
沙发
 楼主| 发表于 2018-7-22 23:05:06 | 显示全部楼层
这样的问题在实际的开发中我也遇到过好几次,经常都是一些全局的指针变量在运行过程中莫名奇妙的变得很小,导致在使用指针的时候出现程序崩溃的情况出现。每次遇到这样的问题,我都觉得是踩内存了,然后就在访问全局变量的地方加锁进行保护。通常在加锁保护全局资源后都能把问题解决掉,但是我一直都没真正弄懂过出现指针变小的原因,如果是踩了内存那又有什么比较好的方法可以对踩内存的情况进行排查?
在网上找了好久的资料,也没有找到什么比较靠谱的解释,今天把问题抛出来,希望能有大神赐教!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|cqutlab ( 渝ICP备15004556号

GMT+8, 2024-5-8 12:42 , Processed in 0.156365 second(s), 27 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表