如何初始化n维的多维数组,其中n是C中用户的输入?

时间:2016-04-05 16:55:39

标签: c multidimensional-array

我必须从用户那里获取输入N.然后我必须创建一个N维数组。例如,如果N = 4,则array[][][][],当N = 6时,array[][][][][][]

1 个答案:

答案 0 :(得分:0)

由于您要创建一个大小要在运行时确定的数组("动态"),您应该使用其中一个标准C函数进行动态内存分配,例如calloc()它分配内存并对其进行零初始化。

以下是一维数组的示例:

int ii, entries = 0;
scanf("%d", &entries);
float *data = calloc(entries, sizeof(float));

/* load values into the memory addressed by data, as if it were an array */
for (ii=0; ii<entries, ii++) {
  printf("Enter entry %d: \n", ii);
  scanf("%g", &(data[ii])); /* &(data[ii]) is equivalent to data + ii */
}