new,delete使用详解(动态多维数组空间申请)

   C语言中利用库函数malloc和free来分配和撤销空间的。C++中的new与delete是运算符,不是函数,所以执行效率更高。但C++中也是可以使用malloc和free的。但是一来不方便,二来显得很low,三来有的情况会出错,比如当类A或结构体A中存在string类型变量时,对malloc申请的指针内的string类变量无法赋值,所以对A类型的指针空间就不能使用malloc来申请。之前在网上看的解释是:malloc函数无法对string类变量进行操作,所以申请空间失败,是无法进行赋值的。但可以利用构造函数来进行初始化,结构体也可以有自己的构造函数。但这样就显得多此一举。毕竟,如果用new就不存在此种顾虑。
 
new运算符的例子:
new int;        //开辟一个存放整数的存储空间,返回一个指向该存储空间的地址。

 

new int(100);        //开辟一个存储整数的存储空间,初始值为100,返回一个指向该存储空间的地址。
new char[10];        //开辟一个存放字符数组的空间,返回字符数组首元素的地址。
new int[5][4];        //开辟一个二维数组的空间,返回首元素的地址。
float *p=new float(3.1415);        //开辟一个单精度的空间,初值为3.1415,将返回的空间地址赋予给p。

int *pia = new int[10]; // 每个元素都没有初

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值