스트럭쳐 멤버 포인터를 NULL 로 초기화 하려는데, 세그멘테이션
글쓴이: jenix / 작성시간: 수, 2004/06/30 - 3:06오전
1 #include <unistd.h> 2 3 struct test 4 { 5 char *str; 6 struct test *next; 7 }; 8 9 typedef struct test *TEST; 10 11 TEST myt; 12 13 int main(void) 14 { 15 myt->str = NULL; 16 myt->next = NULL; 17 18 return 0; 19 }
위와 같은 코드를 작성하였습니다..
그런데 myt->str = NULL; 등에서 구조체 포인터의 멤버 포인터를 초기화 하려고 했더니.. 세그멘테이션 폴트가 나는군요.. :shock:
제 생각에는 맞는거 같은데.. 뭐가 잘못된건지 ... 에고..
고수분들의 도움 부탁드립니다 ㅠ.ㅠ..
Forums:
Re: 스트럭쳐 멤버 포인터를 NULL 로 초기화 하려는데, 세그멘테
TEST를 포인터로 선언하셨기 때문에
초기화 하시기 전에 메모리 할당을 해주셔야 합니다.
myt = (TEST)malloc(sizeof(struct test));
-----------
청하가 제안하는 소프트웨어 엔지니어로써 재미있게 사는 법
http://sozu.tistory.com
[quote] myt->str = NULL[/quote]
코딩을 하실땐,
if(myt != NULL) myt->str=NULL;
else ...
같이 하세요,
물론, 전체 프로그램의 크기가 커질때 많은 도움이 됩니다.
https://nicesj.com
https://blog.nicesj.com
댓글 달기