C语言 如何设置一个值在多维结构数组使用结构指针?



我有一个结构体:

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函数的帮助。

感谢
  1. 永远不要在typedef后面隐藏指针。它使代码更难维护和阅读。所以从你的代码中删除这个typedef

  2. C语言中的多维表位于表的事实表中。二维表格是一个行表。那么idX是行大小Y是行数数组的定义应该是type arr[Y][X]

  3. 对于索引和大小使用正确的(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;
}

相关内容

  • 没有找到相关文章