为了账号安全,请及时绑定邮箱和手机立即绑定

这是什么情况

这是什么情况

C
Single丶love 2016-08-15 16:50:49
不明白求解释,就是每一步是怎么搞的?怎么会向0地址写入的?
查看完整描述

5 回答

?
wooviet

TA贡献6条经验 获得超5个赞

没看到这里是while(1)吗,也就是这个程序会一直循环下去,那么为什么会退出呢?

这就要看malloc()这个函数了,这是一个动态申请内存空间的函数,这里把它放在while(1)死循环里,就会一直循环申请一个字节(因为这里写的是申请一个字节)内存空间,这个函数申请的空间是在堆当中申请的,那么请问堆的空间能有多大呢?是不是迟早会被申请完?对的吧?迟早会将空间申请完,那么此时,就是我们常说的内存泄漏,最后内存分配完了,但是就会退出吗?最后会在非法访问内存时异常退出。

那么所以我们要养成好习惯,一是申请内存之后一点要检查是否申请成功,二是malloc之后,一定要free掉申请的内存。

查看完整回答
1 反对 回复 2016-08-16
?
凌小天3635910

TA贡献17条经验 获得超13个赞

malloc函数的作用是取一个空的内存,返回一个指针。这个循环可能导致无限的取内存并写入数据0的ascii码。最后系统内存不足而崩溃。

查看完整回答
反对 回复 2016-08-16
?
yemaa

TA贡献77条经验 获得超14个赞


c++没学过啊,看那道题你还是多研究一下malloc这个函数吧

查看完整回答
反对 回复 2016-08-16
  • 5 回答
  • 0 关注
  • 1577 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信