C++学习体会--内存管理

原创 2006年05月26日 16:41:00

看了网上别人关于指针的文章,总结了以下几点

1.内存分配的三种方式

  (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。

  (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

  (3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

2.使用原则

(1)用malloc或new来申请内存,应该用if(p==NULL) 或if(p!=NULL)进行防错处理。

(2)无论用何种方式创建数组,都要赋初值

(3)动态内存的申请与释放必须配对,程序中malloc与free的使用次数一定要相同(new/delete同理)。

(4)free或delete释放了内存后,将指针设置为NULL。避免产生“野指针”

(5)自己使用的内存最好还是自己申请和释放。

 

个人感觉C++语言过于冗长和繁杂,把本来很简单的东西搞得很复杂

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++学习之六、有效的内存管理

有效的内存管理   在程序中使用动态内存优点: 1. 动态内存可以在不同的对象与函数之间共享。 2. 动态分配的内存空间的大小可以在运行时确定。   预备知识: int i = 7; ...

C/C++学习笔记七(内存管理)

相对于其他语言,C、C++的一大利器便是可以非常灵活的控制内存。与此同时,另一方面灵活的带来的要求也是十分严格,否则会出现令人头疼的分配错误、内存越界、内存泄漏等众多内存问题。程序内存结构C程序的内存...

C++学习笔记02之三大函数和栈,堆与内存管理

一、三大函数 因为Class的另一种分类: Class with pointer member(s):string 字符串 在string.h里便有三个特殊函数(The Big Three):拷贝构...

C++学习笔记七——内存管理机制

博文地址:http://blog.csdn.net/u01340105 Windows内存管理器 工作集(WorkingSet):进程虚拟空间中实际被映射到物理内存页面的那部分被称为工作集; ...

C++学习之动态内存管理常见三种错误

C++中动态内存管理经常出现错误,现在我们通过简单的例子对其进行梳理。 1.      动态创建对象的方法,用new来创建,以整型为例 int * pi = new int; //pi poi...

小满的C++学习心得(2) 说说类构造函数和动态内存管理

早就听说C++难就难在它的内存管理,new和delete使用的一不小心轻则内存泄漏,重则损坏堆内存抛出异常。C++异常不同于一般的bug,定位和跟踪颇为困难,最近我在做《C++ Primer Plus...

C++学习资料+学习体会

  • 2011-12-08 19:21
  • 7.33MB
  • 下载

C++学习体会

这个学期过得挺快的,真是眨眼间的功夫,不知不觉贺老师已经带了我们一个学期了,在翻转课堂里也已经翻转了一个学期了,对于这半年,有过疑惑也有过否定,但更多的是收获。   老师课上的分组合作,互帮互助的模...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)