有人能提示一下如何通过引用传递这种类型的数组吗?
int array[2][3][4];这样我就可以保存他的指针,以便使用和修改数组?比如,如果我说的是一个整数:
// Scope 1
int a = 3;
increment(&a);
// End Scope 1
// Scope 2
int *pa;
void increment(int *tpa) {
pa = tpa; *pa++;
}
// End Scope 2非常感谢并致以最良好的问候。
发布于 2010-11-29 06:22:39
感谢所有参与这项活动的人!sskuce提供了一个非常好的解决方案,利用了“容器”。我曾考虑过这一点,但并不是真的喜欢额外的东西。我意识到在有点混乱之后,James McNellis一直都给出了答案。所以..。下面是我更喜欢的没有容器和索引算法的解决方案(注意括号):
void Scope1()
{
int array[2][3][4];
Scope2(&array);
}
int (*pArray)[2][3][4];
void Scope2(int (*tpArray)[2][3][4]))
{
pArray = tpArray;
(*pArray)[0][0][0] = 3;
}再次感谢大家。
发布于 2010-11-29 04:22:38
如果你真的想通过引用传递数组,你可以这样做:
void f(int (&a)[2][3][4]) { }在没有引用的C中,你可以通过指针传递数组(当然,这在C++中也是有效的):
void f(int (*a)[2][3][4]) { }发布于 2010-11-29 04:24:04
C++:
void f(int (&array)[2][3][4])
{
}C: C中没有引用
请注意,无论您如何传递数组,通过引用或不通过引用,数组都不会被复制,因此您将获得原始指针。你也可以像这样传递这个数组:
void f(int array[][3][4])
{
}https://stackoverflow.com/questions/4298834
复制相似问题