C++ free()函数的应用

#include<stdio.h>#include<malloc.h>#include"math.h"#definenull0typedefstructpnode//定义... #include<stdio.h>
#include<malloc.h>
#include"math.h"
#define null 0
typedef struct pnode//定义一个结点
{
float a;//定义系数
int b;//定义指数
struct pnode *next;
};
struct pnode *head;//定义头结点
void creatnode()//创建单链表,输入多项式各项系数
{
int i,n;
struct pnode *p;
struct pnode *t;
p=(struct pnode*)malloc(sizeof(struct pnode));//开辟一个pnode型长度的空间 并将地址给p
p->next=null;head=p;p->a=0;p->b=0;//将p指向的结点赋初值
printf("输入项数 n=");
scanf("%d",&n);//输入项数
for(i=n;i>0;--i)//逆位序向链表输入各项系数与对应指数
{
t=(struct pnode*)malloc(sizeof(struct pnode));
printf("输入第%d项 系数a=,指数b=",i);
scanf("%f,%d",&t->a,&t->b);//输入系数与对应指数
t->next=p->next;p->next=t;
}
}//creatnode
float result(float x)//计算和函数的值
{
struct pnode *temp;
double sum=0.0;
struct pnode *t;
t=head->next;
while(t)//当t不为0时执行一下循环,直至t为0时结束
{
sum=sum+(t->a)*pow(x,t->b);//计算各项之和
t=t->next;//移动指针,指向下一个结点
}
return(sum);//返回计算结果
}//result
void main()
{
float result(float x);
float c,d;
creatnode();//执行creatnode()函数
printf("输入未知数 x=");
scanf("%f",&c);//输入x的值
d=result(c);//返回计算结果给d
printf("answer is %f\n",d);
}//main
怎么清空开辟的链表?程序没有错
展开
 我来答
fyggyf
2010-04-18 · TA获得超过697个赞
知道小有建树答主
回答量:645
采纳率:100%
帮助的人:540万
展开全部
和访问一样,从头开始访问,先保存下一个节点的地址,再free当前节点。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式