안녕하세요, 이중 포인터 코드 질문 드립니다..
241
작성한 질문수 24
강의 11분 경 나오는 강의 중의 read_books2 코드에서처럼
함수 내부적으로 구조체배열을 만들고,
parameter에서 받아온 함수 밖 배열에 대입하면 되는건데...
이중 포인터라는 생각에
이중으로 indirection 하여, 받아온 주소에 있는 배열의 값을 직접 바꿔주는 코드를 작성했습니다..
이중으로 하려니 넘 복잡하여 이것저것 해보다가 일단 실행은 되는 코드를 구현한 것 같은데
이것저것 해보다가 된 것이라 오류나 예외가 없는 코드인지 잘 모르겠어서..
struct book
{
char name[LEN];
char author[LEN];
};
int main()
{ int bookcnt = 3;
struct book* my_books = (struct book*)malloc(sizeof(struct book) * bookcnt);
read_books("text.txt", &my_books, &bookcnt);
}
void read_books2(const char* filename, struct book** books_dptr, int* n)
{
printf("Press any key to read data from a file.\n");
if (_getch()) printf("\n");
else exit(1);
FILE* fr;
fr = fopen(filename, "r");
fscanf(fr, "%d\n", n);
char buffer[LEN];
for (int i = 0; i < *n; i++)
{
fscanf(fr, "%[^\n]%*c", buffer);
strcpy( ((*books_dptr)[i]).name, buffer);
fscanf(fr, "%[^\n]%*c", buffer);
strcpy( ((*books_dptr)[i]).author, buffer);
printf("Book %d : \"%s\" written by \"%s\"\n",
i + 1, ((*books_dptr)[i]).name, ((*books_dptr)[i]).author);
}
}
의도는 구조체의 배열의 주소를 함수의 인자로 받아서,
함수 안에서 indirection을 한번 하면 배열, indirection 한번 더 하면 배열 안의 구조체,
대입되어있는 문자열이 Readonly 이므로 scanf로 해당 주소에 저장을 못하니,
strcpy() 이용.
제가 의도한대로 구현이 된건지 도움 부탁드립니다!
코드 첨부합니다 ( 코드 일부만 올렸는데 필요하시면 다 올리도록 하겠습니다!)
답변 2
1
별다른 오류나 예외가 없었다면 잘 구현하신 것 같아요!
그래도 혹시 모르니 여러 케이스들로 테스트 한번 해보세요 화이팅! 😀
(여담으로 이 강의 후에 이어지는 교수님의 자료구조 강의의 1강에서 이중 포인터로 비슷한 프로그램 구현하는 것도 나와요. 해당 강의에서 참고해보셔도 될 것 같아요! 따배C 수강평 남기면 무료로 수강 할 수 있다고 알고 있습니다.)
0
감사합니다!!!!!!!!!
아, 위에서 얘기한 강의 중의 read_books2 코드에서,
*books_dptr = books; 로 구현된 부분이
books_dptr = &books; 로 대체가 가능할까요?
두 문장이 혹시 차이가 있을까요 ?!
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
47
3
main 함수에서 왜 int만 선언이 되는걸까요
1
52
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
53
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
46
1
프로토타입과 함수간의 인자 불일치
1
72
2
12.12 헤더 관련 질문
1
59
2
Visual Studio Community 2026 사용 문의
1
134
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
59
2
getchar(), putchar()
1
92
3
강의자리ㅛ
1
78
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
112
2
소스파일안에 여러 파일
1
74
2
F5와 F7의 차이
1
75
2
c = TWO * (a+b); 에서 a와 b는?
1
58
2
; 세미콜론을 붙이는 기준에 문의
1
68
1
Step over 기능 문의
1
52
2
2.6 강의 따옴표 출력 규칙 문의
1
74
2
int main 함수 관련 오류 문의
1
67
2
13.4 words[0]
0
60
2
11.7 함수를 구현해 봤습니다.
1
62
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
64
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
53
2
11.6 fit_str함수를 구현해 봤습니다.
1
53
2
11.5 코드 구현
1
67
2





