new 和malloc relloc

众所周知   new   delete 是c++的   

malloc realloc  free 是 c的   那么他们有什么区别  和左右 是否只是c++的风格?      


new  和malloc 都是申请一片空间   

c++用法  可变空间

     	int * size =new int[10];   //给 size申请十个空间  如果 空间用的不够了  想重新 换一个更大的空间   
	int *tmp =new int[20];
       	memcpy(tmp ,size ,20*sizeof(int));
        delete []size;
 	size =tmp;

c用法  可变空间

	int * size =(int *)malloc(10);  //给 size申请十个空间  如果 空间用的不够了  想重新 换一个更大的空间   
	size =(int*)realloc(size ,10*sizeof(int));        


	free(p);




从上面来看 c++的new 没啥用嘛 除了能证明 我是c++风格 但是用起来不如 c的好用啊

要他干啥?但是c++有c 没有的元素 对象 new 的对象 都会调用 构造函数 delete 的时候 析构函数

但是用c 的malloc 只会开辟一片空间 不会调用构造函数

友情提示 不管是new  合适malloc   必须 自己申请 自己释放     如果自己不管 那么就有可能引起内存泄露 或莫名其妙的崩溃  


申请空间有风险   使用需谨慎      


delete[]  代表 我将释放一片空间   但是请记得 保存 释放空间的首地址 否则  系统将送你一份大礼 





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值