エラー:初期化要素はロード時に計算できません

マイクの答えはまったく正しい.

ただし、GNU C 拡張機能を使用できる場合、または代わりに新しくより優れた C99 標準を使用する場合 (--std=c99 オプション)、このような初期化子は完全に合法です。 C99 標準は 9 年も前から公開されており、ほとんどの C コンパイラはそれを非常にうまくサポートしています... 特にこの機能.


これは C では違法です。初期化リストはコンパイル時の定数式でなければなりません。代わりに次のことを行ってください:

int prm_arr[3];

prm_arr[0] = prm.field1;
prm_arr[1] = prm.field2;
prm_arr[2] = prm.field3;