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

传递init_node函数第5个参数时出现不兼容指针类型错误求助

解决传递init_node第5个参数时的指针类型不兼容错误

错误根源

你传入的initial_req_item和函数定义要求的REQ_ITEMS类型不匹配:

  • 函数init_node的第5个参数REQ_ITEMS定义为char [MAX_ANSWER_COUNT][100],第二维长度固定为100
  • 你声明的initial_req_item是char [MAX_ANSWER_COUNT][10],第二维长度为10

在C语言中,二维数组作为参数传递时,第二维的长度是指针类型的组成部分,长度不匹配就会触发incompatible pointer types错误。

另外需注意:函数第6个参数REQ_VALS是char [MAX_ANSWER_COUNT],但你传入的initial_req_val是int [MAX_ANSWER_COUNT],这同样属于类型不兼容,后续运行必然出现问题,必须同步修正。

解决方案

两种修正方式任选其一即可:

方式一:调整数组定义,匹配函数参数

修改initial_req_item的第二维长度为100,和函数参数要求一致:

char initial_req_item[MAX_ANSWER_COUNT][100] = {" ", "свиня", "меч"};

同时修正第6个参数的类型——因为你传入的initial_req_val存的是数值,应把函数定义里的REQ_VALS改为int类型:

TreeNode* init_node(char NPC[500], char PLAYER[MAX_ANSWER_COUNT][100], int cycle, int IS_REQ[MAX_ANSWER_COUNT], char REQ_ITEMS[MAX_ANSWER_COUNT][100], int REQ_VALS[MAX_ANSWER_COUNT])

方式二:修改函数参数,匹配数组定义

如果不想调整数组长度,就把函数中REQ_ITEMS的第二维改为10:

TreeNode* init_node(char NPC[500], char PLAYER[MAX_ANSWER_COUNT][100], int cycle, int IS_REQ[MAX_ANSWER_COUNT], char REQ_ITEMS[MAX_ANSWER_COUNT][10], int REQ_VALS[MAX_ANSWER_COUNT])

同样要将第6个参数REQ_VALS改为int类型,和你传入的initial_req_val类型匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 06:33:11