Posted on 2007-08-03 13:06
宝杉 阅读(175)
评论(0) 编辑 收藏 引用 所属分类:
C++
内存分配方式
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,防止产生野指针。