new和delete运算符 c/c++

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了new和delete运算符 c/c++相关的知识,希望对你有一定的参考价值。

c++中,new的用法很灵活,这里进行了简单的总结:

    new() 分配这种类型的一个大小的内存空间,并以括号中的值来初始化这个变量;

    new[] 分配这种类型的n个大小的内存空间,并用默认构造函数来初始化这些变量;  

    当使用new运算符定义一个多维数组变量或数组对象时,它产生一个指向数组第一个元素的指针,返回的类型保持了除最左边维数外的所有维数。

delete用于释放申请的内存空间

释放由new申请的空间可以使用delete,释放由new[]申请的空间可以使用delete[]

参考技术A 在C++语言中,仍然支持malloc()和free()来分配和释放内存,同时增加了new

和delete来管理内存。
1.为固定大小的数组分配内存

#include iostream.h

int main()

int *birthday=new int[3];
birthday[0]=6;
birthday[1]=24;
birthday[2]=1940;
cout< < delete [] birthday; //注意这儿
return 0;


在删除数组时,delete运算符后要有一对方括号。
2.为动态数组分配内存

#include iostream.h
#include stdlib.h

int main()

int size;
cin>>size;
int *array=new int[size];
for(int i=0;i array[i]=rand();
for(i=0;i cout<<'\n'< delete [] array;
return 0;
本回答被提问者采纳

以上是关于new和delete运算符 c/c++的主要内容,如果未能解决你的问题,请参考以下文章

没有“new”的C ++删除运算符[重复]

C语言中已经有了malloc和free,为啥还需要new和delete?

C++ new和delete运算符简介

如果类具有析构函数/ delete [],则成员运算符new []的参数“size”会增加

C++ | 运算符new和delete

c的free和c++的delete的区别