ページ 11

ポインタでのエラー

Posted: 2011年9月08日(木) 08:31
by kame
OS名:linux?
コンパイラ名:不明
ライブラリ名:不明

telnetでログインしてviで編集している。osはlinuxと聞いていますがバージョンは分かりません。
コンパイラ、ライブラリもまったく分かりません。

以下のようなコードを組んでコンパイルしたところエラーが発生しましたが、
理由がわかりません。どなたかこの件について分かる方はいませんでしょうか。

なお、エラーメッセージをメモっていなかったため、忘れてしまいました。
ちょっとテストできる環境から離れているため、すぐにメッセージが確認できません。

コード:

st.c

struct saTbl {
  int ntype;
  char data1[1500];
  char data2[1500];
};

struct aTbl1 {
  saTbl d;
};
static aTbl1 *paTbl1;

struct aTbl2{
  saTbl d;
};
static aTbl1 *paTbl2;

test.c
#include "st.c"

static const sdatatbl {
  int no;
  int *padr[2];
} datatbl[] = {
  {1, (int *)&paTbl1, (int *)&paTbl2},
  {-1, NULL, NULL}
};

void main()
{
  int n1;

  for (n1 = 0; datatbl[n1].no != -1; ++n1)
  {
    if (datatbl[n1].padr[0] != NULL)   // <-ここでエラー
    {
      /* 処理  */
    }
  }
}

Re: ポインタでのエラー

Posted: 2011年9月08日(木) 09:00
by non
一番最初には10行目でエラーが出そうですが?
他にも、あっちこっち。
お使いのコンパイラならでないのでしょうか?

Re: ポインタでのエラー

Posted: 2011年9月08日(木) 10:09
by softya(ソフト屋)
勘ですが、Linuxならg++でしょうね。
C++じゃないと通らない書き方がされています。

こちらで、ブラウザさえあればコンパイルできますよ。
「Ideone.com | Online IDE & Debugging Tool >> C/C++, Java, PHP, Python, Perl and 40+ compilers and intepreters」
http://ideone.com/

Re: ポインタでのエラー

Posted: 2011年9月08日(木) 20:10
by kame
返信ありがとうございます
>一番最初には10行目でエラーが出そうですが?
>他にも、あっちこっち。
>お使いのコンパイラならでないのでしょうか?

コードはそのまま書くことが出来なかったので、ノートに概要だけ書いて写してきたモノです。
特に間違いは無かったようなので、

>勘ですが、Linuxならg++でしょうね。
>C++じゃないと通らない書き方がされています。
こちらの推測通りじゃ無いかと思います。

>こちらで、ブラウザさえあればコンパイルできますよ。
>「Ideone.com | Online IDE & Debugging Tool >> C/C++, Java, PHP, Python, Perl and 40+ compilers and intepreters」
>http://ideone.com/
ちょっとこちらで試してみます。