왜 에러가나는지 잘 모르겠습니다. 도움부탁드립니다.
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);
이렇게 해야 될 것 같은데요.
아.. 맞군요. 이런 실수를 했네요.. 하하^^자기 생각에 빠져서
아.. 맞군요. 이런 실수를 했네요.. 하하^^
자기 생각에 빠져서 그게 틀린지도 모르고 계속 고민만 했네요..
정말 감사합니다.
댓글 달기