第5章 内存管理
1.野指针
定义指针变量的同时最好初始化为NULL,用完指针后也将变量的值设置为NULL。也就是说除了使用时,别的时间都把它设置为NULL
2.堆,栈和静态区
堆:由malloc系列函数或new操作符分配的内存。其生命周期由free或delete决定
栈:保存局部变量
静态区:保存自动全局变量和static变量。整个程序的生命周期都存在,由编译器在编译的时候分配
3.常见的内存错误
- 结构体成员指针未被初始化
- 没有为结构体指针分配足够的内存
- 一般在函数入口使用 assert(NULL!=p)对参数进行检验
- 为指针分配的内存太小
- 内存分配成功,但并未初始化
- 内存越界,内存泄露
4.内存释放之后,重新把p的值设置为NULL
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:《C语言深度解剖》学习笔记之内存管理 - Python技术站