私はこの質問がたくさん頼まれていることを知っていますが、構造体にアクセスする方法はまだ不明です。c structの配列へのポインタ
私は、構造体の配列へのグローバルポインタ作りたい:
typdef struct test
{
int obj1;
int obj2;
} test_t;
extern test_t array_t1[1024];
extern test_t array_t2[1024];
extern test_t array_t3[1025];
extern test_t *test_array_ptr;
int main(void)
{
test_array_ptr = array_t1;
test_t new_struct = {0, 0};
(*test_array_ptr)[0] = new_struct;
}
をしかし、それは私に警告を与えます。 []
で特定の構造体にアクセスするにはどうすればよいですか?
同様に、構造体タイプのポインタの配列を作成するにはどうすればよいですか? test_t *_array_ptr[2];
?
、エラーを与える必要があります。 '(* test_array_ptr)[0]' dereferencesは2回ですが、星は1つだけです。 –
@DanielFischer:gccは、たとえば、 "制約違反"(Cが何かが*違法であると言っているほど近い)のコンストラクトに対して、警告を頻繁に表示します。 '-pedantic-errors'オプションはより厳密に動作します。 –
@KeithThompsonはい、その特定の問題については、gccは 'deref.c:18:18:error:添え字付きの値は配列もポインタもベクトルでもありません 'と言っています。 (Hmm、 'ベクトル'は何ですか?これはCですか?)構造体をデリファレンスする、または 'int'のメンバにアクセスするようなものについては、コンパイラはどのようにそれを行うべきなのかわからないので、あきらめてエラー。 –