malloc和new

****malloc与new的区别

mallocnew
函数关键字
只能开辟空间不仅能开辟空间和可以初始化
在堆上开辟在自由的存储区域中开辟
内存不足时返回NUL内存不足时,抛出异常

C与C++开辟与释放内存所使用的函数/关键字

在C中开辟内存malloc
在C中释放内存free
在C++中开辟内存new
在C++中释放内存delete

在C中开辟内存使用“malloc”
1、开辟内存

int *p=(int*)malloc(sizeof(int));//之后需要将开辟的内存free掉否则会造成内存泄漏

2、开辟二维数组

int arr[4][4];
int *arr=(int*)malloc(sizeof(int*)*4);
 for(int i=0;i<4;++i)
{
	arr[i]=(int *)malloc(sizeof(int)*4);
}
/*
for(int i=0;i<4;i++)
{
  free(arr[i]);
}
free(arr);
*/

在C++中开辟内存使用 “new”
1、开辟内存

int *cpp=new int();//创建新的内存,并将其初始化为0
                  //需要用delete将其开辟的空间销毁掉

2、开辟二维数组

int *arr= new int*[4];
for(int i=0;i<4;i++)
{
   arr[i]=new int[4];
}
/*
for(int i=0;i<4;i++)
{
   deiete arr[i];
}
delete arr;
*/

C++中内存开辟与释放
new:1、开辟内存;2、初始化
delete:1、释放/销毁资源;2、释放空间

int *arr=new int[]//开辟一个数组
int *arr=new int;//开辟一个数组并将其里面存放的数值初始化为0
int *arr=new int();//创建新的内存,并将其初始化为0
销毁开辟的数组的空间delete[]arr;
销毁开辟的内存资源delete arr;
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值