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

C++技术求助:调用dispense(order[1])失败,疑仅差一个字符

问题分析与解决

你的代码核心问题是order数组的类型定义错误:

  • zinc、omega、magnesium作为数组名,本质是指向数组首元素的int*指针,dispense(zinc)能正常运行说明该函数接收int*类型参数。
  • 当前int order[] = {*zinc, *omega, *magnesium};定义的是int类型数组,存储的是每个数组的首元素值(*zinc等价于zinc[0]),因此order[1]是int类型值,与dispense要求的int*类型不匹配,导致调用失败。

解决方法(仅修改一个核心字符)

将order的类型修改为指针数组,只需在int后添加一个*,同时修正初始化列表的笔误(去掉每个元素前的*):

int* order[] = {zinc, omega, magnesium};

修改后,order数组存储的是三个数组的指针,order[1]就是指向omega数组的int*指针,调用dispense(order[1])就会和dispense(omega)完全等价,可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 05:21:57