0

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

例如,如果用户输入了 number 5,我会希望创建5 integer arrays被调用array1[64], array2[64], array3[64], array4[64], and array5[64]的。

4

2 回答 2

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);
于 2013-09-18T17:21:59.673 回答
0

任何时候你说,“我想要 N 个相同类型的变量,命名为var1, var2, var3, ..., varN”,你真正想要的是一个数组;在这种情况下,您需要一个数组数组。

假设您在编译时知道第二维(即,它始终是 的 Nx64 元素数组int),那么这很容易:

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

// get numArrs from user

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

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

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

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

于 2013-09-18T20:54:44.217 回答