몇가지 여쭈어 봅니다

익명 사용자의 이미지

어떤 파일에서 다음과 같은 데이타가 있다고 가정하고..
--------
학번 2000111111
이름 우리집
첫인상 안좋음
-------

-------라는 구분자가 나오기 전까지 이것을 field와 value로 구분하여
구조체로 설정하였습니다.

struct STUDENT {
char *field;
char *value;
char *next;
};

필드엔 이름..모 이런게 들어가고..(어떤 필드가 더 나올지 모른다고 가
정) 벨류엔 그 값이 들어가려고요..
fgets로 파일에서 한줄 읽은 다음에 그 다음걸 linked list로 표현하려고
하는데 next값에 무엇이 들어가야 할런지 고민이 되네요. 배열 같은경우
다음번 배열인자가 들어가면 되지만 ..이런경우엔..ㅜ.ㅜ
그리고 어떤 함수 go(*address)와 go(**address)가 어떻게 다른지도 알고
싶습니다.
감사합니다.

익명 사용자의 이미지

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차원 포인터는 데이터 시작점의 주소가 있는 곳의 주소를 가르키는것입니
다. 좀더 상세한건 포인터 책을 참조하세요.

익명 사용자의 이미지

감사합니다..
제가 타이핑을 잘못했군요..

님께서 말씀하신데로..
struct STUDENT {
char *name;
char *value;
struct STUDENT *next;
}
라고 선언했을경우에...
*next에는 무엇이 할당되어야 하나요...다음 field의 주소를 가리켜야 된
다는건 알겠는데....그 주소를 어떻게 구하는지..알수가 읍떠서리..

익명 사용자의 이미지

다음 주소는 이렇게 하시면 되겟지요..
리스트를 전역으로 선언해 놨다면..
struct STUDENT *std;

struct STUDENT *next;
next = (struct STUDENT *)malloc(sizeof(struct STUDENT));

/* 데이터 입력 */
.
.
/* 데이터 입력 종료 */

next->next = std;
std = next;

이런 식으로 하면 됩니다..
이부분에 대해서는 포인터에 대해 자세히 책을 보시는게 좋을거 같네여.
이부분도 마찬가지 포인터와 관련된거입니다.

익명 사용자의 이미지

친절한 설명 감사합니다..
저도 님처럼 여기에 답변해줄 날을 기대하며....
좋은 하루 되세요..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.