왜 에러가나는지 잘 모르겠습니다. 도움부탁드립니다.

NIGHT_FEVER의 이미지

typedef struct _UserData
{
int socket;
char id[ID_SIZE];
char pw[PW_SIZE];
char groupName[GROUP_NAME];
char ip[IP_SIZE];
int port;
bool state;
}UserData;

typedef struct _Node
{
UserData *key;
struct _Node *next;
}Node;

typedef struct _SLL
{
Node *pHead;
Node *pTail;
Node *pCur;
int count;
}SLL;

void CreateList(SLL *p)
{
p->pHead = ((Node*)malloc(sizeof(Node)));
// p->pTail = (Node*)malloc(sizeof(Node));

// p->pHead->next = p->pTail;
// p->pHead->key ;
// p->pTail->next = p->pTail;

// p->pCur = p->pHead;
// p->count =0;

}

위에 있는 코드는 헤더파일이고, 연결리스트를 위해서 짠겁니다.
그리고 이 헤더파일이 포함될 프로그램은 간단한 서버클라이언트 프로그램인데요. 세그먼트 에러가나서 확인해보니 위 헤더파일에 있는 CreateList 에서 에러가나는것 같아서 주석처리하면서 확인해봤는데요.
제가 보기엔 아무 이상이 없는것 같거든요.
CreateList 는 변수선언이 다끝나고 바로 나오는 함수라 제일 처음 실행되는 겁니다.

neogeo의 이미지

SLL 구조체 자체를 create 제대로 하셔서 보냈는지 의문이군요

에러나신다는 function 에서 받는 SLL *p 녀석을 어떻게 만들어서

보낸건지 소스를 보여주셔야 할거 같습니다

Neogeo - Future is Now.

NIGHT_FEVER의 이미지

#include"SLL.h"

SLL *sll <---- 전역으로 선언했구요..

main()
{
.......

CreateList(sll); <--- 메인함수 내에 있는것입니다.

......
}

sunge의 이미지

저 코드만 봐서는 문제될것이 없어 보이네요.
CreateList내부보단 CreateaList를 호출하는쪽에서 문제가 있는거 같은데요.

Simple is best, all of the time...
저거 맞나...

doldori의 이미지

NIGHT_FEVER wrote:
#include"SLL.h"

SLL *sll <---- 전역으로 선언했구요..

main()
{
.......

CreateList(sll); <--- 메인함수 내에 있는것입니다.

......
}

이러면 널 포인터를 넘기는 것 아닌가요?

SLL sll;
CreateList(&sll);

이렇게 해야 될 것 같은데요.

NIGHT_FEVER의 이미지

아.. 맞군요. 이런 실수를 했네요.. 하하^^

자기 생각에 빠져서 그게 틀린지도 모르고 계속 고민만 했네요..

정말 감사합니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.