如何根据C中的用户输入创建n个数组

时间:2013-09-18 17:17:19

标签: c arrays dynamic

我想提示用户输入一个数字,然后让计算机创建那么多数组。

例如,如果用户输入了号码5,我希望创建名为5 integer arrays的{​​{1}}。

2 个答案:

答案 0 :(得分:2)

您可以使用指针数组

如下: -

int n,i;

//enter n

int **array = malloc(sizeof(int*)*n);

for(i=0;i<n;i++)
  array[i] = malloc(sizeof(int)*64);

 /* Do Stuffs*/


/* Free Memory */  
for(i=0;i<n;i++)
  free(array[i]);

free(array);

答案 1 :(得分:0)

任何时候你说,“我想要一个名为var1var2var3,...,varN”的N个变量,你真正想要的是什么是一个数组;在这种情况下,您需要一个数组数组。

假设您在编译时知道第二个维度(即,总是将成为int的Nx64元素数组),那么这很容易:

#include <stdlib.h>
...
size_t numArrs = 0;

// get numArrs from user

int (*arrs)[64] = malloc( sizeof *arrs * numArrs );    

Presto - 您已经分配了int的Nx64数组,您可以像任何普通的2D数组一样访问它:

arrs[i][j] = some_value();

arrs[0]是您的第一个64元素数组intarrs[1]是您的第二个64元素数组int,等等。