宝杉的博客

UNIX/LINUX;ACE;SNMP;C++
posts - 33, comments - 23, trackbacks - 0, articles - 0

内存管理

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,防止产生野指针。


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理