C / C ++库函数void free(void * ptr)取消分配先前由对calloc,malloc或realloc的调用分配的内存。以下是free()
函数的声明。
void free(void *ptr)
该函数需要一个指针ptr。这是指向以前分配有malloc,calloc或realloc的内存块的指针。如果将空指针作为参数传递,则不会发生任何操作。
#include <iostream> #include <cstdlib> #include <cstring> using namespace std; int main () { char *str; /* Initial memory allocation */ str = (char *) malloc(15); strcpy(str, "nhooo"); cout << "String = "<< str <<", Address = "<< &str << endl; /* Reallocating memory */ str = (char *) realloc(str, 25); strcat(str, ".com"); cout << "String = "<< str <<", Address = "<< &str << endl; /* Deallocate allocated memory */ free(str); return(0); }
输出结果
String = nhooo, Address = 0x22fe38 String = nhooo.com, Address = 0x22fe38