포인터 에러
글쓴이: bakdorazi / 작성시간: 화, 2010/04/13 - 5:18오후
아래의 소스를 돌리다가..
다음과 같은 에러가 나서 질문올립니다.
char *name; in i; char *Names[] = { "s0", "s1", "u0", "u1", NULL }; char *GetName(int i) { return Names[i]; } for( i=0; i< 17; i++) { name = GetName(i); }
이걸 실행시키면 아래와 같은 에러가 나옵니다.
warning: assignment makes pointer from integer without a cast
name = GetName(i) 이 부분에서 나는 에러인데요..
제가 볼때는 잘 못 된 부분이 없는 것 같은데
왜 에러가 날까요..
Forums:
name = GettName(i); 위
위 소스에 오타가 있습니다.
-----------------------
좋은사람한테 잘해라, 물어보자 남의 머리속을 볼수 없으니..
2010. 1. 20일을 기억하기를 바라며
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
소스 오타는 제가 옮겨 적으면서 생긴겁니다.
실제 소스는 오타가 없습니다.
회사 소스라서 간단히 표현한 것입니다.
실제로 저런 형태인데.. 제가 보기엔 아무 문제없지만 프로그램을 실행시켜 보면
저 부분에서 멈춥니다.
segmentfault 가 나면서요...
소스 위, 아래 다 살펴보았지만 특별한 문제가 없었습니다.
딱 저 소스 부분에서만 warning이 나는데요...
warning이 난 4줄이 모두 저 부분입니다...
뭐가 잘못 되었는지는 모르겠구 해서요...
기초적인 거지만 여기 질문 올리네요..
다시 한 번 잘 봐 주세요...
원래 소스를 올리겠습니다.
이렇습니다.
그 밑에 함수는 nexCheckPortName(int , char *) 입니다.
아시는 분은 답글 좀 달아주세요..
거짓말로 소스
거짓말로 소스 올리시면 답변이 늦어집니다. ^^
이 함수가 보여주신 것처럼 사용되는 곳(name = nexGetPortName(port);)과
같은 파일에 있습니까?
다른 파일에 있다면 헤더 파일 등을 통해서 제대로 선언이 되어 있습니까?
--
Jun, Woong (woong.jun at gmail.com)
Web: http://www.woong.org (서버 공사중)
--
Jun, Woong (woong at gmail.com)
http://www.woong.org
헤더 파일에 잘못이 있었네요..
포인터 에러가 나서 포인터 문제인 줄만 알았던 것이 잘못인 것 같습니다.
헤더파일에 nexGetPortName이 선언되어 있지 않았습니다.
위의 함수가 선언된 곳과 사용한 곳이 서로 달랐거든요...
서로 다른 파일에 정의되어 있었습니다.
헤더를 고치고 나니까 에러는 사라졌습니다...
그렇지만 프로그램 실행에는 아직 문제가 있군요...
그건 제가 풀어야 할 숙제인 것 같습니다...
답글 감사합니다.. 많은 도움이 되었습니다.
댓글 달기