링크리스트 삽입부분이 제대로 안되고 안되네요~~헤드가 널값이 아닌경우에요..
모이
질문 제목 : 삽입부분이 제대로 되고 있지 않고 있습니다.질문 요약 :널값이 아니 경우에, 삽입이 제대로 안되고 있어 출력이 안되네요~~
헤드가 널값이 아닌 경우에 제대로 들어가고 않고 있습니다.
질문 내용 :
#include stdio.h
#include stdlib.h
#include malloc.h
#include string.h
struct phone{
char name[10];
char number[20];
struct phone *p; // 다음을 가리키는 포인터
};
void Insertnext(char *name, char *number);
void print(struct phone* cur);
struct phone *head = NULL;
int main(void){
int select = 0;
char name[10] = {0}, number[20] = {0};
while(select!=5)
{
printf(********************** MENU **********************\n);
printf(* 1. New data *\n);
printf(* 4. Print *\n);
printf(* 5. Exit *\n);
printf(**************************************************\n);
printf(Choose the item:);
scanf(%d, &select);
switch(select)
{
case 1:
printf(1. Insert\n);
printf(input name : \n);
scanf(%s, name);
printf(input number : \n);
scanf(%s, number);
// stdin(fflush);
Insertnext(name, number);
break;
case 2:
printf(2. Delete\n);
break;
case 3:
printf(3. Search\n);
break;
case 4:
printf(4. Print All\n);
print(head);
break;
case 5:
printf(5. Exit\n);
break;
}
}
}
void Insertnext(char *name, char *number)
{
//head 포인터가 NULL일 경우
if(head == NULL)
{
head = (struct phone *)malloc(sizeloc(sizeof(struct phone));
strcpy(head-name,name);
strcpy(head-number,number);
head-p = NULL;
}
else //head 가 NULL이 아닐 경우
{
struct phone *cur = NULL; // 임시변수
cur = (struct phone *)malloc(sizeof(struct phone));
cur = head ;
cur - p = head - p;
while(cur - p != NULL){
cur = cur - p ; }
cur - p = NULL;
strcpy(cur - name, name);
strcpy(cur - number, number);
}
}
void print(struct phone* head)
{
struct phone* cur = head;
while(cur!=NULL)
{
printf(%s %s \n, cur-name, cur-number);
cur = cur-p;
}
}