free 函数文档
函数概要:
free 函数释放 ptr 参数指向的内存空间。该内存空间必须是由 malloc、calloc 或 realloc 函数申请的。否则,该函数将导致未定义行为。如果 ptr 参数是 NULL,不执行任何操作。
注意:该函数并不会修改 ptr 参数的值,所以调用后它仍然指向原来的地方(变为非法空间)。
函数原型:
#include <stdlib.h> ... void free(void *ptr);
参数解析:
|
参数 |
含义 |
|
ptr |
指向将要释放的内存空间的地址 |
返回值:
该函数没有返回值。
演示:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i, length;
char *buffer;
printf("请输入字符串的长度:");
scanf("%d", &length);
buffer = (char *)malloc(length+1); // 还要存放'\0'字符
if (buffer == NULL)
{
printf("内存空间不足!\n");
exit(1);
}
printf("请输入%d个字符的字符串:", length);
getchar(); // 清除上一次输入残留的'\n'字符
for (i = 0; i < length; i++)
{
buffer[i] = (char)getchar();
}
buffer[i+1] = '\0';
printf("您输入的字符串是:%s\n", buffer);
free(buffer);
return 0;
}




