作者:jicanmeng
时间:2014年11月27日
在C语言中,动态分配内存使用malloc()函数,释放动态分配的内存用free()函数。在C++中,malloc/free被替换成了new/delete。
示例程序如下:
#include <iostream> int main() { // dynamically allocate an integer int *pnValue = new int; *pnValue = 7; // unallocate memory assigned to pnValue delete pnValue; pnValue = 0; int nSize = 12; int *pnArray = new int[nSize]; // note: nSize does not need to be constant! pnArray[4] = 7; delete[] pnArray; return 0; }
new和delete有两个版本:new/delete和new[]/delete[]。前者用于分配和释放一个变量的内存,后者用于分配和释放一个数组的内存。在程序中,我们虽然在分配数组内存的时候使用了new int[nSize]
,但其实编译器调用的是new[]。