You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用结构体指针修改多维结构体数组中的成员值?

错误原因
  • 指针类型定义错误:typedef struct human_table *humanPointer; 这行是非法的,human_table是你定义的数组变量名,不是结构体类型名,struct human_table属于不存在的自定义类型。要指向Human类型的3行2列二维数组,指针类型需要匹配第二维的长度,正确定义为typedef Human (*humanPointer)[2];
  • 成员访问语法错误:human_table[x][y]拿到的是Human类型的结构体实例,不是结构体指针,不能用->访问成员,需要改用.运算符。
修正后代码
// 修正指针类型定义,[2]对应二维数组的第二维长度
typedef Human (*humanPointer)[2];

void Modify_Human_age(humanPointer human_table, int x, int y, int New_Age)
{
    human_table[x][y].age = New_Age;
}
调用示例
// 示例:把第0行第1个元素的age改成20,直接传数组名即可
Modify_Human_age(human_table, 0, 1, 20);

内容的提问来源于stack exchange,提问作者PreScalar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:27:02