| [ CnUnix ] in KIDS 글 쓴 이(By): flesh (t(-_-t);;) 날 짜 (Date): 2002년 7월 20일 토요일 오전 10시 44분 39초 제 목(Title): [질문] C에서요... 마구마구 헷갈리고 있습니다. main() { char *a; a = (char *)malloc(...); a = returnVal(); } char *returnVal() { char *b; b = (char *)malloc(...); /* b 에다가 write */ return(b); } 이거 미친짓인가요? -_-;; 제가 볼땐 a에는 굳이 malloc()을 안해줘도 될거 같은데, 여지껏 그렇게 써왔 습니다. -_-;; 지금 곰곰히 생각해보니 결국 a는 b의 address를 받는 거고, b는 data segment 내 memory 공간을 할당받는 것이니 dangling pointer의 위험은 사라지는 거고. 한참을 C 코딩을 해왔지만 아직도 이런 삽질을 하는게 맞는지 틀리는지도 구분을 못하니 나이 헛먹은 것 같네요. T_T dangling pointer?의 예제도 덧붙혀서 저 위의 코드가 정상적(?)인 것인지 답변 주세요. 고수님들.. T_T Sincerely yours. - from devil |