*while(1)不是会一直执行吗,p=0;后面也没有break, 为什么会跳出循环?
- 小张老师:
因为内存是有限的
你不停用malloc,没有free内存
最终内存耗尽后,malloc会返回0
此时p的值是0
也就是空指针
往空指针写入数据,就挂掉了
malloc(1)就是写入多少呢?1个字节?
-
小张老师:
malloc(1)就是申请一个字节的空间呀,指针p指向申请到的空间入口地址。 -
free的用法:
那是不是初始化指针p的时候才可以指向0地址?
- 小张老师:
p可以指向0
但是不能往空指针里写数据