c 언어 포인터와 구조체 질문 입니다.

글쓴이: 익명 사용자 / 작성시간: 토, 2018/02/03 - 8:45오후
이런 글을 올려서 정말 죄송합니다.
근데 정말 정말 모르겠어서 글 올립니다.
대체 int person_list_length(person_t *list) 이 부분에
뭘 채워넣으라는 의미 인가요?
현재 상태에서 출력되 잘 되는데 말입니다.
이런 두서 없는 글 올려서 죄송합니다.
물어볼 곳이 없어서 올려봅니다.
#define TRUE 1 #define FALSE 0 typedef struct person_s { char name[31]; int age; float height; struct person_s *next; // Next person on the list } person_t; void free_person_list(person_t *); int person_list_length(person_t *); person_t *read_person(int); person_t *read_person_list(); /* Pretend to read a person from a file. For the purposes of this program, we are passed in an int telling us which person is read. We make up a fake person based on num, rather than actually reading from a file. */ person_t *read_person(int num) { if (num < 0 || num >= 3) { return NULL; // Pretend it's end of file } person_t *result = (person_t *) malloc(sizeof(person_t)); switch(num) { case 0: strcpy(result->name, "John"); break; case 1: strcpy(result->name, "Chihiro"); break; case 2: strcpy(result->name, "Merced"); break; default: printf("PROGRAM ERROR, ABORTING!"); exit(1); } result->age = 18 + num; result->height = 5 + 0.1f * num; return result; } /* * Pretend to read a list of person instances from a file */ person_t *read_person_list() { person_t *list; person_t **to_be_read = &list; int i = 0; while (TRUE) { person_t *to_add = read_person(i++); *to_be_read = to_add; if (to_add == NULL) { return list; } to_be_read = &((*to_be_read)->next); } } /* * Free a list of person entries */ void free_person_list(person_t *list) { while (list) { person_t *next = list->next; free(list); list = next; } } /* Return the number of person_t objects on the list that is passed in. */ int person_list_length(person_t *list) { /////여기에 정답을 넣어야만 합니다.///// } int main() { person_t *person_list; person_list = read_person_list(); int len = person_list_length(person_list); printf("person_list has %d person instances.\n", len); free_person_list(person_list); }
Forums:
코멘트에 있는 그대로, 인자로 받은 list에 있는
코멘트에 있는 그대로, 인자로 받은 list에 있는 person_t 객체의 개수를 반환하는 코드를 작성하시면 되겠네요.
출력에 "person_list has ** person instances."에서 ** 자리에 정확한 숫자가 나오도록 말이죠. 지금 코드라면 3이 나와야겠네요.
좋은 하루 되세요!
댓글 달기