在软件开发过程中,常常需要动态的分配与撤销内存空间,例如对动态链表中节点的插入与删除。
C语言实现
利用malloc与free函数来分配和撤销内存空间
//malloc函数原型
void *malloc(unsigned int size);
int *p=(int *)malloc(sizeof(int)*100);
//free函数原型
void free(void *p);
free(p);
c++实现
利用new与delete运算符来分配和撤销内存空间
int *p=new int;
int *p new int(10);
int * p=new int[10];
delete p;
delete []p;
//注意用new分配数组空间时不能给数组赋值。如果由于内存不够等原因而无法分配空间,new会返回一个null,用户可以以此来判断分配空间是否成功
注意:
由于c中malloc与free是函数,而c++中new与delete是运算符,不是函数,因而执行效率很高。虽然为了兼容c,c++仍然保留malloc与free,但是不建议使用malloc与free,而用new与delete运算符。