모든 노드 삭제
날샘
질문 제목 : 질문 내용 :
typedef struct linked_list
{
char data;
struct linked_list *next;
struct linked_list *pre;
}node;
node *head, *tail;
node *temp0, *temp1, *temp2, *temp3;
node *ptr;
node *newnode;
node *start = null;
.
.
.
void creatnode()//노드를 구현한 방법입니다.
{
node *ptr;
int a, aces[4];
for(a=0;a4;a++)
{
fflush(stdin);
printf(%d번째 노드에 삽입될 데이터\n,a+1);
scanf(%c,&aces[a]);
fflush(stdin);
}
head = (node *)malloc(sizeof(node));
tail = (node *)malloc(sizeof(node));
temp0 = (node *)malloc(sizeof(node));
temp0-data = aces[0];
head-next = temp0;
temp0-pre = head;
temp0-next = tail;
tail-pre = temp0;
ptr = temp0;
start = temp0;
temp1 = (node *)malloc(sizeof(node));
temp1-data = aces[1];
ptr-next = temp1;
temp1-pre = ptr;
temp1-next = tail;
tail-pre = temp1;
ptr = temp1;
temp2 = (node *)malloc(sizeof(node));
temp2-data = aces[2];
ptr-next = temp2;
temp2-pre =ptr;
temp2-next = tail;
tail-pre = temp2;
ptr = temp2;
temp3 = (node *)malloc(sizeof(node));
temp3-data = aces[3];
ptr-next = temp3;
temp3-pre = ptr;
temp3-next = null;
printnode();
}
void deleteallnode()//모든 노드를 제거하는 함수 입니다.
{ //여기서 에러가 나는데요, 프로그램이 멈춰버립니다. 뭐가 잘못된거죠?
node *delnode;
node *sptr;
delnode=head-next;
sptr=delnode-next;
while(delnode != null)
{
free(delnode);
delnode = sptr;
sptr = delnode-next;
}
printf(노드를 재 생성합니다.\n);
creatnode();
}
-
키움
노드가 하나밖에없을때 문제가 되지않을까요 ?