C语言中用malloc/realloc/calloc/free进行空间的申请与释放,在C++中用新的方式进行空间的申请与释放。
申请一个int型的空间并释放
//C语言:int *ptr=(int)malloc(sizeof(int));free(ptr);
//C++: int *ptr= new int;delete ptr;
C++的申请方式更为简洁方便,而且不会出现申请空间失败的情况,其原因是因为在new的底层实现是用malloc申请空间的,如果申请空间失败则继续申请空间,直到成功申请空间。new还有如下几种功能:
// 动态申请一个int类型的空间初始化为10并释放 int* ptr = new int(10); delete ptr;
// 动态申请10个int类型的空间并释放
int* ptr = new int[10];
delete[] ptr;
可见,new可在申请空间是完成初始化,还可以申请一段连续空间,delete也可释放一个连续空间