在C语言中,利用库函数malloc和free进行分配和撤销内存空间。但使用malloc函数必须指定需要开辟内存空间的大小。其调用形式为malloc(size)。size是字节数,需要事先求出或用sizeof运算符的系统求出。此外,malloc函数只能从用户处知道开辟空间的大小而无法得知数据类型,因此无法使其返回的指针指向具体数据。其返回值一律为void *类型,必须在程序中进行强制类型转换,才能使其返回指针指向具体数据。
C++中使用功能较强的运算符new和delete来取代malloc和free函数。
例如:
new int; //开辟一个存放整数的空间,返回一个指向整型数据的指针。
new int(100); //开辟一个存放整数空间并指定该整数初值为100.
new运算符使用的一般格式:
new 类型[初值]
注:用new分配数组控件时不能指定初值。
delete运算符使用一般格式:
delete []指针变量。
注:new和delete是运算符,不是函数,因此执行效率较高。