C で多次元配列を正しく設定、アクセス、解放するにはどうすればよいでしょうか? 質問する

C で多次元配列を正しく設定、アクセス、解放するにはどうすればよいでしょうか? 質問する

C の多次元配列に関して、「私のコードの何が問題なのか」という質問を何十件も見てきました。何らかの理由で、人々はここで何が起こっているのか理解できないようです。そこで、他の人への参考として、この質問に答えることにしました。

C で多次元配列を正しく設定、アクセス、解放するにはどうすればよいですか?

他の人が役に立つアドバイスを持っている場合は、ぜひ投稿してください。

ベストアンサー1

mallocC99 以降の C では、動的な多次元配列であっても、次のようにして一度に簡単に割り当て、解放することができますfree

double (*A)[n] = malloc(sizeof(double[n][n]));

for (size_t i = 0; i < n; ++i)
  for (size_t j = 0; j < n; ++j)
      A[i][j] = someinvolvedfunction(i, j);

free(A);

おすすめ記事