c语言中,molloc的空间用free释放后仍然可以通过指针访问那段空间,系统究竟啥时候真正回收那段内存?

大神稍微解释下原理... 大神稍微解释下原理 展开
 我来答
DoramiHe
2018-07-24 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59542
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
内存都是用地址编好了每一”格“的,一个地址对应一“格”,定义一个指针时,系统为指针随机赋一个内存大小范围内的地址,所以该指针肯定指向内存的某一“格”。如果没对指针进行赋值便使用(如p->next之类的),一般情况下在windows中运行时会提示非法访问内存,然后程序崩溃(调试时经常出现的情况),如果其他操作系统没有这样保护的话,可以使得指针任意访问内存,这是非常危险的,所以尽量别出现野指针。
1、因为定义的指针已指向一个地址,所以可以*p=5;
2、定义指针时并不是开辟内存空间,指定指针类型主要是为了在 *p 访问指针指向内容时可以确定怎样读取这块连续的内存(例如int与long所占的字节是不同的)
追问
老哥能不能稍微看下题
阳光的雷咩咩
2018-07-24 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7832万
展开全部
我认为这是操作系统自动维护的。
就像你在磁盘上删除了个文件,可以从回收站找回来,那说明文件还在,此时只是删除了一个类似指针的链接。
即便从回收站再删除了,仍然有可能通过直接读硬盘的方式找回来(大多数磁盘数据恢复的原理)。
为什么这样做,主要为了性能。磁盘循环使用新的数据覆盖旧数据,比每删除一个文件就格式化这块存储空闲着快一点。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式