연결 자료 리스트(다항식 저장) 에러수정좀 ㅠㅠ
민G
질문 내용 :파일에서 다항식 정보 읽어서 연결 자료 리스트저장하는겁니다
컴파일 에러는 안나는데 돌려보면 에러가 나는데 왜이럴까요.. 그리고 프리 부분 왜 저렇게 해야되는건지 설명좀 부탁드려요 ㅠ 이해가 안되네요
다항식 저장 방법은 최고차항이 4고 그 다음 숫자들은 계수들의 내림차순으로 43 20 31 이런식..#includestdio.h
#includestdlib.h
typedef struct Listnode{
float coef;
int expo;
struct Listnode *next;
}listnode;
typedef struct Headnode{
listnode *head;
}headnode;
headnode* createheadnode(void)
{
headnode *L;
L=(headnode*)malloc(sizeof(headnode));
L-head=NULL;
return L;
}
listnode* getnode(headnode *a)
{
listnode *newnode;
listnode *p;
newnode=(listnode*)malloc(sizeof(listnode));
p=(listnode*)malloc(sizeof(listnode));
newnode-next=NULL;
if(a-head==NULL)
{
a-head=newnode;
}
p-next=a-head;
while(p-next=NULL) p=p-next;
p-next=NULL;
return newnode;
}
void freeall(headnode *H)
{
listnode *p;
while(H-head!=NULL)
{
p=H-head;
H-head=H-head-next;
free(p);
p=NULL;
}
}
void main()
{
int i,j;
int poly;
headnode *H;
listnode *A;
FILE *fp;
//--------잠시 저장용-------//
fp=fopen(test.dat,wb);
fputs(5 4 3 0 1 3,fp);
fclose(fp);
//----------Headnode 생성-----------//
H=createheadnode();
fp=fopen(test.dat,rb);fscanf(fp,%d,&poly);
for(i=0; ipoly; i++)
{
A=getnode(H);
}
A=(listnode*)malloc(poly*sizeof(listnode));
for(i=0; ipoly; i++)
{
fscanf(fp,%f,A[i].coef);
}
for(i=poly; i==0; i--)
{
if(A[i].coef==0) i--;
else A[i].expo=i;
}
freeall(H);}