new 和malloc relloc

2016-12-30 11:27:04来源:CSDN作者:w739639550人点击

第七城市

众所周知   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[]  代表 我将释放一片空间   但是请记得 保存 释放空间的首地址 否则  系统将送你一份大礼 





第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台