C:如何创建一个包含二维数组的二维数组?
C: How can I create a 2d array that hold 2d arrays?
例如,我在 2x2 二维数组中生成了 1 和 0 的“区域”。但我需要存储其中的 9 个区域,以便随时从另一个 3x3 二维数组“地图”访问。区域数组是随机生成的,一旦添加到 2d 地图数组中就需要保持不变,这样我就可以“离开”一个区域并返回并且它是相同的。有点像 ASCII 游戏
这样
int zone[2][2];
// fill zone array
int map[3][3];
map[0][0] = zone;
我认为为了简单起见,您可以在 c 中使用 struct
。用struct
管理和修改会更容易
#include <stdio.h>
struct Zone {
int zone[2][2];
};
int main()
{
struct Zone map[3][3];
struct Zone zone1;
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
zone1.zone[i][j] = i + j; // putting some values for example
}
}
map[0][0] = zone1;
}
您可以创建一个 multi-dimensional 9x2x2 数组,其中每个 2x2 区域都通过其区域索引 (0-8) 访问。
int zone[9][2][2];
// I can now access any of the nine 2x2 zones using indices 0-8
zone[0][0][0]
zone[1][0][0]
zone[2][0][0]
...
zone[8][0][0]
例如,我在 2x2 二维数组中生成了 1 和 0 的“区域”。但我需要存储其中的 9 个区域,以便随时从另一个 3x3 二维数组“地图”访问。区域数组是随机生成的,一旦添加到 2d 地图数组中就需要保持不变,这样我就可以“离开”一个区域并返回并且它是相同的。有点像 ASCII 游戏
这样
int zone[2][2];
// fill zone array
int map[3][3];
map[0][0] = zone;
我认为为了简单起见,您可以在 c 中使用 struct
。用struct
#include <stdio.h>
struct Zone {
int zone[2][2];
};
int main()
{
struct Zone map[3][3];
struct Zone zone1;
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
zone1.zone[i][j] = i + j; // putting some values for example
}
}
map[0][0] = zone1;
}
您可以创建一个 multi-dimensional 9x2x2 数组,其中每个 2x2 区域都通过其区域索引 (0-8) 访问。
int zone[9][2][2];
// I can now access any of the nine 2x2 zones using indices 0-8
zone[0][0][0]
zone[1][0][0]
zone[2][0][0]
...
zone[8][0][0]