我正在尝试制作包含多个数组的另一个struct
的{{1}}。我也需要动态分配这些数组,所以我想我还需要另一个指针。
struct
好的,所以一旦我弄明白了,我仍然需要弄清楚如何使用int arraysize;
typedef struct Array{
int *size = arraysize;
unsigned int val[*size];
unsigned int x[*size];
unsigned int y[*size];
} Array;
typedef struct Image{
int height;
int width;
int max;
Array *data;
} Image;
动态分配内存。我也完全迷失了。任何帮助都将非常感激。
编辑:更多澄清: 我正在使用数组存储三条全部连接的信息。想象一下棋盘,你可以说骑士E4,它告诉你在E行的第4列,有一个骑士。如果你在A1开始这个过程并在K10结束,那么你有一个完整的棋盘吗?图像结构类似于棋盘,数组类似于组成棋盘的一组正方形的列表以及这些正方形的内容。 (例如A1 null A2骑士a3主教等...)不幸的是,我不知道将通过哪种板,它可能是3x7板或9x2板等。所以我需要动态分配内存为那些可能性。一旦我分配了内存,我需要存储有关所有“正方形”的位置和内容的信息。然后我需要让一个程序通过板的高度,板的宽度和内容列表,我将完成困难的部分。
答案 0 :(得分:1)
你的意思是:
typedef struct data {
unsigned int x;
unsigned int y;
unsigned int val;
} Data;
typedef struct image {
int height;
int width;
int max;
Data* data;
} Image;
和某处:
Image i;
i.height = 10;
i.width = 20;
i.data = malloc(sizeof(Data) * i.width * i.height);
...
// one of the ways how to access Data at 2nd row, 3rd column:
*(i.data + i.width * 1 + 2).val = 7;
...
free(i.data);
i.data = NULL;
但你真正需要的是一本好书;)