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++的new 和 delete 操作符重载。

测试代码: // test.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include using name...
  • chjjunking
  • chjjunking
  • 2014年03月04日 12:16
  • 2643

C++new和delete实现原理

new操作 delete操作 new[]操作 delete[]操作
  • passion_wu128
  • passion_wu128
  • 2014年09月01日 02:01
  • 10489

c++的new和delete的方法使用以及不用new定义变量

new和delete运算符用于动态分配和撤销内存的运算符 new用法:           1.     开辟单变量地址空间                1)new int;  //开辟一个存...
  • uestcyao
  • uestcyao
  • 2014年03月24日 16:44
  • 6482

重载new和delete的一些规则

重载new和delete的一些规则重载new和delete的一些规则 一般规则 特殊规则1 特殊规则2 特殊规则3 new和delete重载实例 直接获取当前的new_handler 转载请注明出处参...
  • sanoseiichirou
  • sanoseiichirou
  • 2015年11月20日 23:18
  • 1239

C++的new、delete及其内存管理

代码写多了,就麻木了。new和delete很好用,平时用的时候没想太多。但如果“想太多”就会引发出很多东西。 new和delete跟sizeof一样,是操作符,关键字,而不是函数。new和dele...
  • Kelvin_Yan
  • Kelvin_Yan
  • 2015年01月13日 11:11
  • 1262

c++详解【new和delete】

说起new和delete,了解过c++的人应该都知道吧,它是用来分配内存和释放内存的两个操作符。与c语言中的malloc和free类似。 c语言中使用malloc/calloc/realloc/fr...
  • xxpresent
  • xxpresent
  • 2016年11月21日 09:22
  • 1355

new出的对象数组必须要用delete[]删除,而普通数组和结构数组delete和delete[]都一样

为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-----_CrtMemBlockHeader                            ...
  • Watson2016
  • Watson2016
  • 2016年10月25日 17:06
  • 3072

C++中new和delete在数组指针和指针数组中的调用

首先,先区分下数组指针和
  • u013025310
  • u013025310
  • 2014年05月14日 23:23
  • 3569

C++开发DLL中使用new和delete注意事项

报错情况: 1,在 DLL 中用 new 来创建宿主程序中的对象,然后把这个对象指针保存到宿主程序,当 DLL 被卸载后,凡是涉及到这个指针的调用都会报错,包括 delete 这个指针也会有错。 ...
  • dodott
  • dodott
  • 2016年11月11日 18:26
  • 1076

既然有了malloc/free为何还要new/delete?

既然有了malloc/free为何还要new/delete? 最近开发过程中,有个疑问,就是C中已经有了malloc 和free 为何在C++中又有new/delete呢(不负责任的回答是前者是C里面...
  • gggg_ggg
  • gggg_ggg
  • 2015年01月07日 14:09
  • 2321
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++学习 ( new, delete)
举报原因:
原因补充:

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