1

スタック メモリ上の 2D 配列に値を割り当てる方法を教えてください。次のことを試しましたが、うまくいかないようです。もちろん、一度に各値を割り当てることもできますが、一度に値を割り当てることに興味がありました。何か案は?

double phi[2][5];
phi[0] = {1, 0, 2, 1, 0};
phi[1] = {1, 0, 2, 1, 0};
4

2 に答える 2

2

配列を初期化できます:

double phi[2][5] = { {1, 0, 2, 1, 0 },
                     {1, 0, 2, 1, 0 } };

省略された要素はデフォルトでゼロに設定されるため、以下は同じ結果になることに注意してください。

double phi[2][5] = { {1, 0, 2, 1 },
                     {1, 0, 2, 1 } };

コンパイラが C99 をサポートしている場合、複合リテラルはオプションになる可能性がありますが、 の型をphiの配列へのポインタに変更する必要がありますdouble[5]。例えば:

double (*phi)[5];

phi = (double[][5]) { { 11, 12, 13, 14, 15 },
                      { 21, 22, 23, 24, 25 } };

phi = (double[][5]) { { 111, 122, 133, 144, 155 },
                      { 211, 222, 233, 244, 255 } };

ただし、個々の次元ではなく、すべての次元を割り当てる必要があります (デモhttp://ideone.com/NxdUOを参照)。

于 2012-08-14T10:55:17.427 に答える
1
double phi[2][5] = {{1, 0, 2, 1, 0},{1, 0, 2, 1, 0}};
于 2012-08-14T10:55:35.200 に答える