옵션 |
|
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
struct student //본 구조체
{
char name[20];
char number[20];
char phone[20];
}stud;//구조체 변수 stud
struct list //리스트 구조체
{
int count;//카운트
void* next;//다음 포인터
}hum;//구조체 변수 hum
int main()
{
int val=0;
printf("save(1), search(2), exit(0)\n");
scanf("%d",&val);
switch(val)
{
case 0:
printf("Exit\n");
return 0;
case 1:
save();
break;
case 2:
search();
break;
default:
printf("잘못 입력\n");
break;
}
}
int save(void)
{
struct student* stud;
stud = (struct student*)malloc(sizeof(struct student));//malloc 사용>>student 포인터 만듬
{
printf("이름 입력 : \n");
scanf("%s",(*stud).name);
printf("학번 입력 : \n");
scanf("%s",(*stud).number);
printf("전화번호 입력 : \n");
scanf("%s",(*stud).phone);
}
//hum.next=(struct stduent*)stud;
if(hum.next!=0)
{
stud++;
hum.next=(void*)stud;
printf("이름 입력 : \n");
scanf("%s",stud->name);
printf("학번 입력 : \n");
scanf("%s",stud->number);
printf("전화번호 입력 : \n");
scanf("%s",stud->phone);
}
//return은?
}
int search()
{
int result;
char seek[20];
printf("전화번호 검색:\n");
scanf("%s",seek);
result=strcmp(seek,stud.phone);
//while()
{
if(result!=0)
{
printf("검색결과 없음\n");
}
else if(result==0)
{
printf("이름 : %s \n",stud.name);
printf("전화번호 : %s \n",stud.phone);
printf("학번 : %s \n",stud.number);
return main();
}
}
return 0;
}
student 구조체를 만들어서 list의 *next 포인터로 linked list 를 작성해보려고하는데요!
실행시키면 저장이 안되고 다음 student 구조체로도 넘어가질 않는 것 같아요..
질문
1. save 함수에 제가 알맞게 student 포인터 설정,동적 할당이 되었는지
2. save 함수에 if 문 사용하는 것이 맞는것인지
가 궁금해요!
많은 지적 부탁드려요!!
감사합니다^^