-1

私はメモリの単一ブロックを割り当てる方法を見つけようとしていましたが、多次元構文を使用していました.SOで探していたものを正確に見つけました.

C では malloc ですが、多次元配列構文を使用します

しかし、そこにコードをカット/ペーストした後:

  int (*MAGICVAR)[200] = malloc(400 * sizeof *MAGICVAR);
    MAGICVAR[20][10] = 3; 

次のエラー メッセージが表示されます。「型 void * の配列は型 int(*)[200] のエンティティの初期化に使用できません」 "

vs2010を使用しています。

4

1 に答える 1

2

まず、C ++コンパイラではなくCコンパイラを使用してCコードをコンパイルします。次に、C ++コンパイラを使用する必要がある場合は、の戻り値をmalloc宣言された型にキャストします。

int (*MAGICVAR)[200] = (int(*)[200])malloc(400*sizeof *MAGICVAR);
于 2012-09-20T10:52:39.473 に答える