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

标签 c multidimensional-array

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

最佳答案

由于您想要创建一个其大小在运行时(“动态”)确定的数组,因此您应该使用标准 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 */
}

关于c - 如何初始化一个 n 维的多维数组,其中 n 是 C 中用户的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36432572/

相关文章:

C - 链表不兼容的指针类型

c - 为什么 ICC 在 x86 上的汇编中生成 "inc"而不是 "add"?

c++ - 编译成 C/C++ 源代码的编程语言?

C - 将 system() 函数输出打印到文件中

c++ - vector 和数组传递错误

无法在 C 中打印 "* "

python - 按图像大小对图像矩阵(Numpy 和数组)列表进行排序

java - 使用递归对二维数组中的整数求和?

php - 将txt文件分解为多维数组

c - 在 C 中声明全局多维数组