学过c语言的人都知道,c语言中动态分配内存空间使用的是库函数malloc,calloc,realloc以及free。而c++中所使用的是关键字new和delete。如
动态分配 new , 撤销内存 delete
1 new int; //开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针) 2 3 new int(100); //开辟一个人存放整数的空间,并指定初值为100,返回一个指向该存储空间的地址 4 5 new char[10]; //包括10个元素的空间,返回首元素的地址 6 7 float *p = new float(3.14159); //开辟一个存放单精度数的空间,并指定该实数的值为3.14159,返回该空间的地址赋值给指针变量 p
如果由于内存不足等原因而无法正常分配空间,则new会返回一个空指针NULL。
上诉第4个,要撤销用new分配的空间,则
1 delete p;
delete 运算符使用的一般格式:
delete [] 指针变量
需要注意的是,不要将c语言中的内存分配函数和c++中的new和delete混用,这样将会造成不可预知的后果。