몇가지 여쭈어 봅니다
글쓴이: 익명 사용자 / 작성시간: 목, 2002/03/14 - 9:30오전
어떤 파일에서 다음과 같은 데이타가 있다고 가정하고..
--------
학번 2000111111
이름 우리집
첫인상 안좋음
-------
-------라는 구분자가 나오기 전까지 이것을 field와 value로 구분하여
구조체로 설정하였습니다.
struct STUDENT {
char *field;
char *value;
char *next;
};
필드엔 이름..모 이런게 들어가고..(어떤 필드가 더 나올지 모른다고 가
정) 벨류엔 그 값이 들어가려고요..
fgets로 파일에서 한줄 읽은 다음에 그 다음걸 linked list로 표현하려고
하는데 next값에 무엇이 들어가야 할런지 고민이 되네요. 배열 같은경우
다음번 배열인자가 들어가면 되지만 ..이런경우엔..ㅜ.ㅜ
그리고 어떤 함수 go(*address)와 go(**address)가 어떻게 다른지도 알고
싶습니다.
감사합니다.
Forums:
Re: 몇가지 여쭈어 봅니다
whiteday. wrote..
어떤 파일에서 다음과 같은 데이타가 있다고 가정하고..
--------
학번 2000111111
이름 우리집
첫인상 안좋음
-------
-------라는 구분자가 나오기 전까지 이것을 field와 value로 구분하여
구조체로 설정하였습니다.
struct STUDENT {
char *field;
char *value;
char *next;
};
필드엔 이름..모 이런게 들어가고..(어떤 필드가 더 나올지 모른다고 가
정) 벨류엔 그 값이 들어가려고요..
fgets로 파일에서 한줄 읽은 다음에 그 다음걸 linked list로 표현하려 고
하는데 next값에 무엇이 들어가야 할런지 고민이 되네요. 배열 같은경 우
다음번 배열인자가 들어가면 되지만 ..이런경우엔..ㅜ.ㅜ
링크드 리스트를 표현한다면 스트럭쳐가 잘못되었네여..
struct STUDENT {
char *name;
char *value;
struct STUDENT *next;
}
이렇게 되겠지요.. 즉 next에는 다음 데이터 스트럭쳐의 주소값을
가르키게 되야 하지요.
그리고 어떤 함수 go(*address)와 go(**address)가 어떻게 다른지도 알 고
싶습니다.
감사합니다.
1차원 포인터와 2차원 포인터의 차이지여..
1차원 포인터는 데이터 시작점의 주소값을 가르키는거고..
2차원 포인터는 데이터 시작점의 주소가 있는 곳의 주소를 가르키는것입니
다. 좀더 상세한건 포인터 책을 참조하세요.
Re^2: 몇가지 여쭈어 봅니다
감사합니다..
제가 타이핑을 잘못했군요..
님께서 말씀하신데로..
struct STUDENT {
char *name;
char *value;
struct STUDENT *next;
}
라고 선언했을경우에...
*next에는 무엇이 할당되어야 하나요...다음 field의 주소를 가리켜야 된
다는건 알겠는데....그 주소를 어떻게 구하는지..알수가 읍떠서리..
Re^3: 몇가지 여쭈어 봅니다
다음 주소는 이렇게 하시면 되겟지요..
리스트를 전역으로 선언해 놨다면..
struct STUDENT *std;
struct STUDENT *next;
next = (struct STUDENT *)malloc(sizeof(struct STUDENT));
/* 데이터 입력 */
.
.
/* 데이터 입력 종료 */
next->next = std;
std = next;
이런 식으로 하면 됩니다..
이부분에 대해서는 포인터에 대해 자세히 책을 보시는게 좋을거 같네여.
이부분도 마찬가지 포인터와 관련된거입니다.
Re^4: 감사합니다..(--)(__)(--)(__)
친절한 설명 감사합니다..
저도 님처럼 여기에 답변해줄 날을 기대하며....
좋은 하루 되세요..
댓글 달기