realloc 함수 질문...
낮선검객
제가 만들고 싶은 것은 동적할당으로 도서 제목, 출판사 명, 도서 가격을 직접 적고 불러오는 것 입니다.
#include stdio.h
#include stdlib.h
typedef struct _book
{
char ob[20];
char name[20];
int pri;
}book;
int main()
{
int i=0;
int j;
int k;
int res;
int cnt=0;
int number;
int tem;
book *in = (book*)malloc(sizeof(book));
book t;
printf(******* 도서 정보 입력. *******\n);
while(1)
{
printf(%d번째 도서 정보 입력.\n,cnt+1);
printf(도서 제목 : );
res=scanf(%s,in-ob);
if(res==EOF) break;
fflush(stdin);
printf(출판사 명 : );
gets(in-name);
printf(도서 가격 : );
scanf(%d,&in-pri);
fflush(stdin);
printf(%d번째 입력 완료.....\n\n,cnt+1);
/*
in+=20;
book *in = (book*)realloc(in,(cnt+1)*sizeof(book));
in[i]=in[cnt];이걸 이용해서2번째 부터 EOF가 나오기 전 까지 입력 하고, if와 else를 써서 기억공간이남아있으면입력받은 데이터를 저장하고, 부족하면 realloc으로 늘려서재할당 받을 곳에 데이터를 저장하고 싶습니다.
*/
cnt++;
i++;
}
free(in);
printf(\n******* 도서 정보 출력. *******\n);
for(j=0; jcnt; j++)
{
printf(%d번째 도서 정보 출력.\n,j+1);
printf(도서 제목 : %s\n,in[j].ob);
printf(출판사 명 : %s\n,in[j].name);
printf(도서 가격 : %d\n\n,in[j].pri);
}
printf(----------------------------\n);
system(pause);
return 0;
}
-
리나
주석처리 해 놓은 부분 약간 수정하면
동작은 될 것 같은데 안되나요? -
해골
질문이 뭔지...
재할당보다는 Linked List를 활용해 보시면 어떨런지?
(재할당은 별로 효율적인 함수가 아닌지라...)