왜 에러가나는지 잘 모르겠습니다. 도움부탁드립니다.
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 는 변수선언이 다끝나고 바로 나오는 함수라 제일 처음 실행되는 겁니다.


SLL 구조체 자체를 create 제대로 하셔서 보냈는지 의문이군요
SLL 구조체 자체를 create 제대로 하셔서 보냈는지 의문이군요
에러나신다는 function 에서 받는 SLL *p 녀석을 어떻게 만들어서
보낸건지 소스를 보여주셔야 할거 같습니다
Neogeo - Future is Now.
#include"SLL.h"SLL *sll <---- 전역
#include"SLL.h"
SLL *sll <---- 전역으로 선언했구요..
main()
{
.......
CreateList(sll); <--- 메인함수 내에 있는것입니다.
......
}
저 코드만 봐서는 문제될것이 없어 보이네요.CreateList내부보단
저 코드만 봐서는 문제될것이 없어 보이네요.
CreateList내부보단 CreateaList를 호출하는쪽에서 문제가 있는거 같은데요.
Simple is best, all of the time...
저거 맞나...
[quote="NIGHT_FEVER"]#include"SLL.h"
이러면 널 포인터를 넘기는 것 아닌가요?
SLL sll;
CreateList(&sll);
이렇게 해야 될 것 같은데요.
아.. 맞군요. 이런 실수를 했네요.. 하하^^자기 생각에 빠져서
아.. 맞군요. 이런 실수를 했네요.. 하하^^
자기 생각에 빠져서 그게 틀린지도 모르고 계속 고민만 했네요..
정말 감사합니다.
댓글 달기