| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1365 人关注过本帖
标题:[求助]关于free()函数的用法!
只看楼主 加入收藏
lucis009
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-5-2
收藏
 问题点数:0 回复次数:6 
[求助]关于free()函数的用法!
题目:链表的插入(某些函函数程序没写)
#include<stdio.h>
#include<stdlib.h>

struct NUM
{
int num;
struct NUM *next;
};

#define LEN sizeof(struct NUM)

struct NUM *insert(struct NUM *head,struct NUM *p0);
void print(struct NUM *head);
struct NUM *release(struct NUM *head);

int main()
{
struct NUM *newnode;
struct NUM *headpoint;
int number;
headpoint=NULL;
printf("输入一个数,输入0结束:");
scanf("%d",&number);
while(number!=0)
{
newnode=(struct NUM *)malloc(LEN);
if(!newnode)
{
printf("内存不足!!\n");
return 0;
}
newnode->num=number;
headpoint=insert(headpoint,newnode);
printf("输入一个数,输入0结束:");
scanf("%d",&number);
}
printf("插入结束!\n");
print(headpoint);
headpoint=release(headpoint);
return 0;
}
...............
..............
struct NUM *release(struct NUM *head)
{
struct NUM *p=head;
while(head)
{
head=p->next;
free(head);
p=head;
}
return head;
}
问题:为什么调用时要headpoint=free(headpoint),能不能把它改成free(headpoint)?
还有,为什么要返回值?不要返回值行不?
搜索更多相关主题的帖子: NUM struct 函数 free 用法 
2007-06-13 15:21
zouxiaohua
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-5-28
收藏
得分:0 
headpoint=free(headpoint),楼主冒似写错了哦
是headpoint=release(headpoint);

返回值方便其他地方可以操作headpoint,不返回想用起来就不知道怎么找了
2007-06-13 15:47
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
假的吧,该函数的功能是释放动态申请的由指针P指向的储存空间,没有返回值得,只针对动态申请的函数malloc和calloc申请的空间,将它们返回给系统后,由系统重新分配该空间

偶是菜鸟鸟偶惧WHO?!!!!
2007-06-13 15:55
lucis009
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-5-2
收藏
得分:0 
是了,我写错了!

"返回值方便其他地方可以操作headpoint,不返回想用起来就不知道怎么找了"那是什么意思?

2007-06-13 16:13
lucis009
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-5-2
收藏
得分:0 
还有,什么时候要返回什么时候不用返回?
2007-06-13 16:14
lucis009
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-5-2
收藏
得分:0 
我是菜鸟,你的意思是不用返回!
我就是把返回删了编译软件说错误,要一个返回值!
2007-06-13 16:16
lucis009
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-5-2
收藏
得分:0 
zouxiaohua 的那句话"返回值方便其他地方可以操作headpoint,不返回想用起来就不知道怎么找了"

那释放函数在结束时才调用的,这样就谈不上方便其它地方操作了!
2007-06-13 16:19
快速回复:[求助]关于free()函数的用法!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023989 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved