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

如何让数组元素指向不同变量?C++指针与vector传参报错修复

指针新手的函数参数问题

我是指针方面的新手,想要编写一个以array或vector为参数的函数,修改参数对应的实际引用值,但不想直接传入vector,而是将多个变量组合成vector传入。

原报错代码

void myFunction (vector <int> &a)
{
    for (int i = 0; i < a.size(); i++)
        a[i] = i;
}

int main()
{
    int a = 5, b = 6, c = 8;
    myFunction ({&a, &b, &c}); // 此行报错,请求修复
    cout << a << " " << b << " " << c << endl;
}

我尝试搜索并在代码中组合使用&、*和const,但都没有解决问题。


修复后的代码

最终只需在<int>中添加*,并在参数中添加const即可修复:

void myFunction (vector <int *> const &a)
{
    for (int i = 0; i < a.size(); i++)
        *a[i] = i; // 注:原代码中`a[i] = i`是错误的,需解引用指针才能修改原变量值
}

int main()
{
    int a = 5, b = 6, c = 8;
    myFunction ({&a, &b, &c}); // 此行报错已修复
    cout << a << " " << b << " " << c << endl;
}

感谢评论区提醒我在int后添加*的网友。我是纯新手,确实需要这类帮助,但遗憾的是该社区对新手不太友好。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:32:07