포인터 에러

bakdorazi의 이미지

아래의 소스를 돌리다가..
다음과 같은 에러가 나서 질문올립니다.

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) 이 부분에서 나는 에러인데요..

제가 볼때는 잘 못 된 부분이 없는 것 같은데

왜 에러가 날까요..

Fe.head의 이미지

name = GettName(i);

위 소스에 오타가 있습니다.

-----------------------
좋은사람한테 잘해라, 물어보자 남의 머리속을 볼수 없으니..
2010. 1. 20일을 기억하기를 바라며

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

bakdorazi의 이미지

실제 소스는 오타가 없습니다.
회사 소스라서 간단히 표현한 것입니다.

실제로 저런 형태인데.. 제가 보기엔 아무 문제없지만 프로그램을 실행시켜 보면
저 부분에서 멈춥니다.

segmentfault 가 나면서요...

소스 위, 아래 다 살펴보았지만 특별한 문제가 없었습니다.
딱 저 소스 부분에서만 warning이 나는데요...

snmp_efmoam.c: In function 'nex_build_efmoam_info':
snmp_efmoam.c:80: warning: assignment makes pointer from integer without a cast
snmp_efmoam.c: In function 'nex_rebuild_efmoam_info':
snmp_efmoam.c:110: warning: assignment makes pointer from integer without a cast
snmp_efmoam.c: In function 'efmoamTable_handler':
snmp_efmoam.c:358: warning: assignment makes pointer from integer without a cast
snmp_efmoam.c:519: warning: assignment makes pointer from integer without a cast

warning이 난 4줄이 모두 저 부분입니다...
뭐가 잘못 되었는지는 모르겠구 해서요...

기초적인 거지만 여기 질문 올리네요..

다시 한 번 잘 봐 주세요...

bakdorazi의 이미지

char *portNames[] =
{
        "s0",
        "s1",
        RESERVED_PORT_NAME,
        RESERVED_PORT_NAME,
        "e0",
        RESERVED_PORT_NAME,
        RESERVED_PORT_NAME,
        "__cpu__",      
        "u0",
        "u1",
        NULL
};
 
char *nexGetPortName(int i)
{
        return portNames[i];
}
 
 
........................................................................
............................
 
int mstate;
int port;
int mod;
char *name;
................................................................
 
for(mod=MODULE_NUM_LM_BASE; mod<MAX_NUM_MODULES; mod++) {
 
        if(mstate & (1<<mod)) {
 
                        for(port=0; port<PORTS_PER_MODULE; port++) {
                                 name = nexGetPortName(port);
 
                                if(nexCheckPortName(mod, name) != NEX_OK){
                                        continue;
                                }
 
..................................................

이렇습니다.

그 밑에 함수는 nexCheckPortName(int , char *) 입니다.

아시는 분은 답글 좀 달아주세요..

전웅의 이미지

거짓말로 소스 올리시면 답변이 늦어집니다. ^^

char *nexGetPortName(int i)
{
    ...
}

이 함수가 보여주신 것처럼 사용되는 곳(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

bakdorazi의 이미지

포인터 에러가 나서 포인터 문제인 줄만 알았던 것이 잘못인 것 같습니다.

헤더파일에 nexGetPortName이 선언되어 있지 않았습니다.

위의 함수가 선언된 곳과 사용한 곳이 서로 달랐거든요...

서로 다른 파일에 정의되어 있었습니다.

헤더를 고치고 나니까 에러는 사라졌습니다...

그렇지만 프로그램 실행에는 아직 문제가 있군요...

그건 제가 풀어야 할 숙제인 것 같습니다...

답글 감사합니다.. 많은 도움이 되었습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.