我想提示用户输入一个数字,然后让计算机创建那么多数组。
例如,如果用户输入了号码5
,我希望创建名为5 integer arrays
的{{1}}。
答案 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)
任何时候你说,“我想要一个名为var1
,var2
,var3
,...,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元素数组int
,arrs[1]
是您的第二个64元素数组int
,等等。