为啥我不用free(s)输出是对的,加了free(s)程序报错?(程序忘了实现删除节点功能)
答案:1 悬赏:50 手机版
解决时间 2021-02-09 21:48
- 提问者网友:你给我的爱
- 2021-02-09 04:05
为啥我不用free(s)输出是对的,加了free(s)程序报错?(程序忘了实现删除节点功能)
最佳答案
- 五星知识达人网友:过活
- 2021-02-09 04:52
函数原型: void free(void *ptr)
参数: 任何类型的指针(指向因调用malloc、realloc以及calloc函数分配得到的空间的指针)
功 能: 释放ptr指向的存储空间。被释放的空间通常被送入可用存储区池,以后可在调用malloc、realloc以及calloc函数来再分配。
注意:free一定是和malloc、realloc或者calloc函数成对出现的,来保证动态分配的空间及时释放,否则会造成内存泄漏,这是正确使用free的一个重要前提,还有就是一块动态申请的内存用free释放一次就够了。
实例:
#include
#include
#include
#include
int main(void)
{
char *str;
str = (char *)malloc(10);
if(str == NULL){
perror("malloc");
exit(1);
}
strcpy(str, "Hello");
printf("String is %s\n", str);
free(str);
return 0;
}
参数: 任何类型的指针(指向因调用malloc、realloc以及calloc函数分配得到的空间的指针)
功 能: 释放ptr指向的存储空间。被释放的空间通常被送入可用存储区池,以后可在调用malloc、realloc以及calloc函数来再分配。
注意:free一定是和malloc、realloc或者calloc函数成对出现的,来保证动态分配的空间及时释放,否则会造成内存泄漏,这是正确使用free的一个重要前提,还有就是一块动态申请的内存用free释放一次就够了。
实例:
#include
#include
#include
#include
int main(void)
{
char *str;
str = (char *)malloc(10);
if(str == NULL){
perror("malloc");
exit(1);
}
strcpy(str, "Hello");
printf("String is %s\n", str);
free(str);
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯