我有一个结构体:
typedef struct{
int age;
int height
}Human;
我用这个结构体创建一个多维数组:
Human human_table[3][2]={
{{1,1},{1,1}},
{{1,1},{1,1}},
{{1,1},{1,1}},
};
我创建了一个指向表的指针
typedef struct human_table *humanPointer;
现在对于这个问题,我如何创建一个函数来修改上面的表?
我现在有这个:
void Modify_Human_age(humanPointer human_table, int x, int y, int New_Age)
{
human_table[x][y]->age=New_Age;
}
但是我得到一个错误,正在寻找如何修复Modify_Human_age函数的帮助。
感谢-
永远不要在typedef后面隐藏指针。它使代码更难维护和阅读。所以从你的代码中删除这个
typedef
。 -
C语言中的多维表位于表的事实表中。二维表格是一个行表。那么id
X
是行大小Y
是行数数组的定义应该是type arr[Y][X]
-
对于索引和大小使用正确的(
size_t
)类型而不是int
void Modify_Human_age(size_t x, size_t y, Human (*human_table)[x], int New_Age)
{
human_table[y][x].age=New_Age;
}