猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
这是什么情况
不明白求解释,就是每一步是怎么搞的?怎么会向0地址写入的?
Single丶love
浏览 1578
回答 5
5回答
wooviet
没看到这里是while(1)吗,也就是这个程序会一直循环下去,那么为什么会退出呢?这就要看malloc()这个函数了,这是一个动态申请内存空间的函数,这里把它放在while(1)死循环里,就会一直循环申请一个字节(因为这里写的是申请一个字节)内存空间,这个函数申请的空间是在堆当中申请的,那么请问堆的空间能有多大呢?是不是迟早会被申请完?对的吧?迟早会将空间申请完,那么此时,就是我们常说的内存泄漏,最后内存分配完了,但是就会退出吗?最后会在非法访问内存时异常退出。那么所以我们要养成好习惯,一是申请内存之后一点要检查是否申请成功,二是malloc之后,一定要free掉申请的内存。
1
0
0
凌小天3635910
malloc函数的作用是取一个空的内存,返回一个指针。这个循环可能导致无限的取内存并写入数据0的ascii码。最后系统内存不足而崩溃。
0
0
0
yemaa
c++没学过啊,看那道题你还是多研究一下malloc这个函数吧
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续