c++学习 ( new, delete)

原创 2015年11月17日 18:34:20

c++是面向对象的编程语言, 其强调的是在运行阶段进行决策,而不是在编译阶段, 所以引入 new ,delete 等 来进行动态内存分配
new 返回的是一个地址, 如 int *p = new int; int *arr = new int [10]; 此时 new 返回的是一个可以容纳int类型的地址。
计算机可能会由于没有足够的内存而无法满足new,在这种情况下new会返回0, c++中值为0的指针被称为空指针;

为了避免内存泄漏,C++ 中可以使用delete 来释放new 的请求地址;

delete p;
此时释放p所指内存,并不会删除指针本身

使用 new 和 delete的注意
delete释放内存针对的是通过new产生的内存对象
避免delete 同样内存多次
使用 new【】 的数组要 使用delete【】 释放
如果使用new【】 为一个实体分配内存,也要使用delete释放
对空指针delete是安全的

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

相关文章推荐

C++学习:malloc/free和new/delete动态内存分配

C++学习:malloc/free和new/delete简介: 在C语言中,内存的申请和释放采用的是malloc/calloc/realloc/free来实现的,而在C++语言中,不仅可以使用以上的...

C++学习:动态内存分配对象的new/delete运算符与函数malloc/free

C++学习:对象的new/delete运算符与函数malloc/free摘要: 在学习java的时候,都是使用new来创建新的对象的,对象的存放在堆里的.而回收是由java虚拟机garbag...

C++学习之new 与 delete表达式

new和delete表达式动态创建和释放单个对象 a)         基本知识介绍:定义变量时,必须指定其数据类型和名字。而动态创建对象时只需指定其数据类型而不必为该对象命名。取而代之的是,new...

【从C到C++学习笔记】域运算符/new/delete运算符/重载/Name managling/extern "C"/带函数默认值参数

C++学习笔记15 malloc free 与 new delete的区别

#include #include /* run this program using the console pauser or add your own getch, system("pa...

Effective c++ 条款16学习笔记: 成对使用new和delete时要采取相同形式

User the same from in corresponding uses of new and deletes 条款16:User the same from in correspond...

operator new和operator delete学习总结

这块内容很多很多,那就捡几个重要的地方说说吧,主要目的是为了在遗忘的时候给自己提个醒,呵呵。 1。new和delete的重载函数都是static函数,你可以在声明的时候写上去,也可以不写(编译器自动...

改善C++ 程序的150个建议学习之建议21:尽量用new/delete代替malloc/free

建议21:尽量用new/delete代替malloc/free 在C语言中,我们已经熟悉利用malloc/free来管理动态内存,而在C++中,我们又有了新的工具:new/delete。你不禁会产生...

每日学习笔记(名字空间,new和delete)

在C++中尽量用而不用 名字空间是管理标示符的一种方法,就是说在同一个名字空间下面只能访问这个名字空间内的标示符 简单的例子就是说比如说   使用了#include   这个宏使用了以后所有...

改善C++ 程序的150个建议学习之建议33:小心翼翼地重载operator new/ operator delete

建议33:小心翼翼地重载operator new/ operator delete 虽然C++标准库已经为我们提供了new与delete操作符的标准实现,但是由于缺乏对具体对象的具体分析,系统默认提...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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