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

(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. Day1-T3

    原题目 Describe:两个限制条件,求第三属性的最大和 code: #pragma GCC optimize(2) #include<bits/stdc++.h> using name ...

  2. LeetCode | No.1 两数之和

    题目描述: Given an array of integers, return indices of the two numbers such that they add up to a speci ...

  3. Django——URL详解/Django中URL是如何与urls文件匹配的

    URL标准语法 protocol://hostname[:port]/path/[:parameters][?query]#fragment https://i.cnblogs.com/EditPos ...

  4. PrepareStatement对象进行批处理的典型步骤顺序

    https://www.yiibai.com/jdbc/preparestatement-batching-example.html 以下是使用PrepareStatement对象进行批处理的典型步骤 ...

  5. Essay写作的灵魂:内容

    在国内大家也许不觉得时常要写essay,但在国外留学,时不时就会有一篇essay写作任务下来.而时常写文的同学们应当就会知道一篇文章中的介绍和结论有多么重要,甚至于当导师拿到你的essay,如果摘要没 ...

  6. LIS是什么?

    在之前的随笔中,大概介绍了医疗系统有哪些,是干什么的,是怎么配合医院业务的.现在就开始主要的说一说我的主要工作业务 — LIS了. 前面说到过LIS(LIMS),名称是实验室信息管理系统,大概可以分解 ...

  7. Oracle 查询重复数据方法

    查询某个字段存在重复数据的方法: select * from tablename where id in (select id from tablename group by id having co ...

  8. Java web项目所需技术*(大概)

    实施java 的web项目需要掌握的技术如下: 1.java语言 2.  面向对象分析设计 XML 语言 网页脚本语言 数据库 应用服务器 集成开发环境 .java语言:JSP.Servlet.JDB ...

  9. CodeForces - 748B Santa Claus and Keyboard Check

    题意:给定两个字符串a和b,问有多少种不同的字母组合对,使得将这些字母对替换字符串b后,可以变成字符串a.注意字母对彼此各不相同. 分析:vis[u]记录与u可形成关系的字母,若u与v不同,则形成字母 ...

  10. Scheduled定时任务器在Springboot中的使用

    Scheduled定时任务器是Spring3.0以后自带的一个定时任务器. 使用方式: 1.添加依赖 <!-- 添加 Scheduled 坐标 --> <dependency> ...