如何让数组元素指向不同变量?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
相关产品推荐
相关产品推荐

