《深入理解C指针》-第2章 C的动态内存管理-阅读所得

        第2章 C的动态内存管理

《深入理解C指针》-第2章 C的动态内存管理-阅读所得

 

由于可以先分配内存然后释放,因而应用程序可以更灵活高效地管理内存,无需为适应数据结构可能的最大长度分配内存,只要分配实际需要的内存即可。

 

2.1 动态内存分配

在C中动态分配内存的基本步骤有:
1. 用malloc类的函数分配内存;
2. 用这些内存支持应用程序;
3. 用free函数释放内存。

 

2.1.1内存泄漏

 

 

 

 


2.2 动态内存分配函数


2.2.1 使用malloc函数
2.2.2 使用calloc函数
2.2.3 使用realloc函数
2.2.4 alloca函数和变长数组
2.3 用free函数释放内存
2.3.1 将已释放的指针赋值为NULL
2.3.2 重复释放
2.3.3 堆和系统内存
2.3.4 程序结束前释放内存


2.4 迷途指针


2.4.1 迷途指针示例
2.4.2 处理迷途指针
2.4.3 调试器对检测内存泄漏的支持


2.5 动态内存分配技术


2.5.1 C的垃圾回收
2.5.2 资源获取即初始化
2.5.3 使用异常处理函数