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