如何将值分配给堆栈内存上的二维数组。我尝试了以下方法,这似乎不起作用。当然可以一次分配每个值,但我有兴趣一次性分配值。有任何想法吗?
double phi[2][5];
phi[0] = {1, 0, 2, 1, 0};
phi[1] = {1, 0, 2, 1, 0};
您可以初始化数组:
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)。
double phi[2][5] = {{1, 0, 2, 1, 0},{1, 0, 2, 1, 0}};