함수포인터에 대한질문입니다
글쓴이: ddong90 / 작성시간: 금, 2010/01/29 - 2:49오후
#include<stdio.h> #include<string.h> char *insert() { char buf[20]; char *str; fgets(buf,20,stdin); buf[(strlen(buf)-1)]='\0'; strcpy(str,buf); return str; } int main() { char *buf; buf=insert(); printf("buf=%s\n",buf); return 0; }
세그먼트 오류가 나는데...
함수포인터에 대해서 공부중인데 헷갈리네요
Forums:
존재하지 않는
존재하지 않는 공간에 buf를 복사하고 있습니다.
질문하신 내용은
질문하신 내용은 '함수 포인터' 가 아닙니다. 함수 포인터라고 하면 말 그대로 함수를 가리키는 포인터를 말합니다.
위 코드는 그냥 포인터를 리턴하는 함수일 뿐이죠.
에러가 나는 이유는 str 이 가리키는 주소가 없기 때문입니다.
malloc 등을 이용해서 str에 제대로 된 주소값만 들어가 있으면 코드가 동작할 것 같네요.
댓글 달기