free -- 释放动态内存空间
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 = (char)getchar();
}
buffer = '\0';
printf("您输入的字符串是:%s\n", buffer);
free(buffer);
return 0;
}
第26行错了
修改:buffer = '\0'; 打卡打卡 谢谢 dnfpk001 发表于 2017-5-26 18:59
第26行错了
修改:buffer = '\0';
正解!{:7_112:}
页:
[1]