------------------------------------------------------------------------------------------------------------------------------------------------------

(1)int *p=new  int(10);//就是在堆区申请一个int,然后赋值为10

(2)int *p=new  int【10】; //申请一个数组  含有10个元素,p是这个数组的首地址

(3)其实平时可以   int a(10);   //其实int也是一个类

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

(1)malloc和free的区别:malloc和free是标准库的函数 stdlib.h中的

(2)new和delete是C++语言的操作符,是集成进去的,不用什么头文件,也不用压栈和出栈,这个就有了省时间

(3)new构造一个对象时,会调用类的构造函数,但是  malloc却不会,必须手动去实例化类的成员变量

(4)free在销毁对象时,不会调用析构,但是  delete会调用析构函数

(5)

--------------------------------------------------------------------------------------------------------------------------------------------

1)new和delete,实际上和sizeof一样,是操作符,不是函数

2)动态的分配和撤销内存空间,例如C的malloc和free是对堆内存的申请和释放,在C++中,用  new  和delete来进行

3)但是,为了和C语言兼容,还是保留了 malloc和free

4)看两段代码,实现一样的功能,但是不同的写法:

 //C语言写法
void test1()
{
int *p=(int *)malloc(sizeof(int));
*p=;
if(p!=NULL)
{
free(p);
p=NULL;
} }
//C++写法
void test2()
{
int *p=new int;
*p=;
if(p!=NULL)
{
delete p;
}
}

5)然后  开辟数组,用new和delete

 //C语言写法
void test1()
{
int *p=(int *)malloc(sizeof(int));
*p=;
if(p!=NULL)
{
free(p);
p=NULL;
}
//如果开辟一个数组
int *p=(int *)malloc(sizeof(int)*); for(int i=;i<=;i++)
{
p[i]=i;
}
}
//C++写法
void test2()
{
int *p=new int;
*p=;
if(p!=NULL)
{
delete p;
} //开辟数组
int *p=new int[];
for(int i=;i<=;i++)
{
p[i]=i;
}
}

33)new和delete关键字的更多相关文章

  1. C++11的default和delete关键字

    C11的新特性实在是太多了,这2个关键字关注的人倒是少了很多,其中有一个原因便是编译器支持得太慢了(VS到VS2013才支持上),不过这2个关键字那真是极为有用的,下面我们来看看. [default关 ...

  2. 4.C++中的函数重载,C++调用C代码,new/delete关键字,namespace(命名空间)

    本章主要内容: 1)函数重载 2)C++调用C代码 3)new/delete关键字实现动态内存分配 4)namespace命名空间 大家都知道,在生活中,动词和不同的名词搭配一起,意义都会大有不同,比 ...

  3. [置顶] perl脚本中defined,exists和delete关键字的用法和区别

    刚学习perl脚本的时候,喜欢频繁使用defined关键字判断一个hash中某个key是否存在,后来程序出了问题才去perl官方文档查看关于defined关键字的准确使用方法.因此,这里我把perl中 ...

  4. new和delete关键字

    new关键字创建出来的对象位于什么地方?很明显嘛,new关键字创建出来的对象一定位于堆空间,这种说法一定正确吗?本篇博客帮你揭开其神秘的面纱. 被忽略的事实new/delete的本质是C++预定义的操 ...

  5. js的delete和void关键字

    delete关键字   delete关键字的作用: 删除对象的属性 语法:delete 对象.属性 可以删除没有使用var关键字声明的全局变量(直接定义在window上面的属性) delete关键字的 ...

  6. Understanding delete

    简述 我们都知道无法通过delete关键字针对变量和函数进行操作,而对于显示的对象属性声明却可以进行,这个原因需要深究到js的实现层上去,让我们跟随 Understanding delete 来探究一 ...

  7. C++中的new与delete(二)

    C++一个对象构造的完整过程为:分配内存和初始化,这也是new关键字所实现的功能,分配内存可通过重载new操作符来实现,系统初始化可通过调用构造函数来完成.我们不能改变new关键字的功能,但可以改变分 ...

  8. C++11 之 delete 和 default

    1  特殊成员函数 设计一个类,没有成员函数 (member function),只有数据成员 (member data) class DataOnly { private: std::string ...

  9. C++ default 和delete的新用法

    C++中的默认函数与default和delete用法一. 类中的默认函数a.类中默认的成员函数1.默认构造函数2.默认析构函数3.拷贝构造函数4.拷贝赋值函数5.移动构造函数6.移动拷贝函数 b.类中 ...

随机推荐

  1. EUI库 - 皮肤

      皮肤分离机制    皮肤分离机制对制作可复用的外观比较有优势 那对于只使用一次的皮肤呢?如果也拆分出两个文件,显然不太方便.这里我们针对单次使用的皮肤定制了内部类的功能   每个组件都有一个chi ...

  2. Windows环境安装与搭建node.js环境

    参考文章:https://www.cnblogs.com/zhouyu2017/p/6485265.html 一.下载node.js,直接下一步至安装完成.https://nodejs.org/en/ ...

  3. 关于低成本Sub-1Ghz无线射频方案首选:CMT2110A

    对于现在的无线遥控市场竞争力极大,不过是在成本方面和性能方面大家都希望能做到精打细算,目前超低功耗Sub-1Ghz 首选方案是CMT2110/17A 芯片具有超低成本,高性能灵活的单芯片OOK发射器, ...

  4. Android中时间戳的详细解释

    Android中时间戳的详细解释: (1).定义: 时间戳就是根据当前系统时间生成的一组随机数字. (2).作用: 作为对数据唯一性的一种判断依据.避免了重复修改数据所带来的错误! (3).应用: ( ...

  5. JS常用的正则表达式包

    结构: Code: /* 用途:检查输入的Email信箱格式是否正确 输入:strEmail:字符串 返回:如果通过验证返回true,否则返回false */ function checkEmail( ...

  6. 二、在SAP中创建一个程序

    一.我们来到SE38 二.添加一个程序的名字,需要以Y或者Z开头,点击创建就可以了 三.我们输入hello Sap,然后选择可执行程序,然后保存 四.创建对象目录时,可以选择把这个加入到包中,或者选择 ...

  7. decltype关键字

    decltype用于编译时类型推导,是以一个普通表达式作为参数,返回该表达式的类型,而且decltype并不会对表达式进行求值. decltype的用法: //推导出表达式类型 ; decltype( ...

  8. python np array转json

    np array转json import numpy as np import codecs, json a = np.arange().reshape(,) # a by array b = a.t ...

  9. promise 核心技术3 使用

    什么是promise?(加深理解) 抽象表达:(比较高的高度 看这门技术) Promise是js中进行异步操作的新的解决方案(旧形式:纯回调的形式) 具体表达: 从语法上,Promise是一个构造函数 ...

  10. 题目(或游戏)流程控制器上传到GitHub

    题目控制系统 1 支持 题目按相同的个数分组 2 支持 pause resume 3 支持 每题限定时间 4 支持 支持对计时器进行回调 5 支持 在全流程开始,全流程结束,每组开始,每组结束,每题开 ...