함수포인터에 대한질문입니다
글쓴이: 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에 제대로 된 주소값만 들어가 있으면 코드가 동작할 것 같네요.
댓글 달기