内存管理
一.内存管理:
1.malloc
void *malloc(size_t size);
功能:
申请堆区空间
参数:
size:申请堆区空间的大小
返回值:
返回获得的空间的首地址
失败返回NULL
2.free
void free(void *ptr);
功能:
释放堆区空间
注意:
1.free只能释放堆区空间
2.一个空间只能被free一次,多次free程序会崩溃
3.malloc需要和free搭配使用,如果只有malloc没有free会内存泄露


练习:要求申请堆区空间,将"hello world"存放到堆区空间,完成打印


封装为函数
二. 内存溢出:
内存溢出也称为内存越界
三.内存泄露:
程序中malloc的空间没有被释放
四.内存碎片:
由于频繁申请和释放,导致连续的空间分散成一些小的碎片空间,当malloc超过碎片空间时,则无法获得该空间(空间不连续),将这样的空间称为内存碎片
链表:
链表代码总览 (头插法):



替换:



删除:



销毁:








![【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]](https://img-blog.csdnimg.cn/direct/32ed20b44d704746a77da19b16d060e5.jpeg)














![[BUUCTF]-PWN:cmcc_pwnme2解析](https://img-blog.csdnimg.cn/direct/4e7aa86a303f40779a61190e4db5f64e.png)
