【发布时间】:2016-11-07 09:08:29
【问题描述】:
我在将数组传递给函数然后对其进行修改时遇到问题。例如:
void foo(int ** a) {
int * b = new int[3]
//Initialize b, i.e b = {3, 2, 1}
a = &b;
//*a = {3, 2, 1}
}
int * c = new int[3]
//Initialize c; c = {1, 2, 3}
foo(&c);
// c is still {1, 2, 3}. Why?
我不太确定为什么c 不指向与b 相同的数组。
【问题讨论】:
-
*a = b;应该可以。虽然我不确定你想做什么。 -
@Arunmu 是的,谢谢。
-
@MarkoStojanovic 您的问题与this 问题中解释的行为有点相似,因此它也将帮助您理解您的问题:)
-
@ItbanSaeed 是的,我正在寻找它,但我自己没有找到。我想我在谷歌搜索时不知道如何正确形成声明。
-
没问题,谷歌搜索没有火箭科学。您可能还没有从结果中找到链接。我只是想让您的问题更清楚一点:)