제가.. 리스트 다항식을 구현하고 있습니다. 고수님들 도움이 필요해요(C)

boyhong23의 이미지

헤더가 있는 단순Chain 리스트로 연결된 다항식인데요 ..
노드를 바로 Free 하지 않고 avail 에 모아두었다가 Free 합니다.
계속 메모리 참조 경고가 켜지네요 왜일까요

void retnode(polypointer node)
{ //node 가 가리키는 항을 제거한다.
	polypointer temp;
	temp=node->list;
	node->list=temp->list;
 
	temp->list=avail;
	avail=temp;
 
 
}

void erasenode(polypointer *ptr)	//원형 리스트 전체를 avail로 반환한다.
{
	polypointer temp;
	if(*ptr){		
		temp=(*ptr)->list;		//반환하려는 리스트를 temp에 저장
		(*ptr)->list=avail;		//반환하려는 리스트가 avail앞에 이어짐
		avail=temp;				//avail포인터가 앞을 가르침
		*ptr=NULL;				//반환됨.
	}
}

void freeallnode(polypointer node)  //  node 가 가르키는 리스트 전체를 반환한다
{
	polypointer temp;
	node=node->list;
	while(node){
		temp=node;
		node=node->list;
		free(temp);
	}
}
shint의 이미지

답변이라기보단...

그림으로 그려 보는건 어떨까요?

retnode()만 그려 봤는데
node -> list -> node -> list -> node -> list 가 되버립니다. 어떤 의미인지 모르겠어요. ㅡ_ㅡ;;;

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com