以下の方法のいずれかを使用しているときにパフォーマンスの問題はありますか? どちらが速いですか (もしあれば)? パフォーマンステストがあれば素晴らしいでしょう。
多次元配列:
// Using multidimmentional array:
int ****multidim_arr;
// ... initialization, etc. ...
int val = multidim_arr[a][b][c][d];
フラット配列:
// Using flat array (or single array)
int *flat_arr;
// ... initialization, etc. ...
int val2 = flat_arr[a * a_lvl + b * b_lvl + c * c_lvl + d];
アップデート:
配列のサイズは固定されていますが、プログラムの実行中にサイズがわかっているため、メモリは malloc() 関数によって割り当てられます。