内存管理

内存分配方式

1 静态存储区域           全局变量 static

2 栈                            局部变量

3 动态存储区域(堆)(malloc free) (new delete)

 

常见错误和对策

1 内存分配未成功。

对策:程序入口处,检查指针是否为NULL。

(1)参数*p所指向的内存,用assert( p != NULL)

(2)malloc或new申请的内存,用if ( p != NULL)

2 内存未初始化。

3 内存操作越界。

4 忘记释放内存,内存泄露。

new与delete配对。

5 释放内存,却继续使用。

       (1)return不能返回“栈内存指针”和“引用”,因为该内存在函数结束时被销毁。

       (2)释放内存后,设为NULL,防止“野指针”。

规则

1 申请内存后检查。assert( p != NULL)

2 数组、动态内存初始化。

3 申请释放要配对。

4 释放内存设置NULL,防止产生野指针。

你可能感兴趣的:(内存管理)