我遇到这个问题很长时间了 - 我有固定大小的二维数组作为类(class)成员。
class myClass
{
public:
void getpointeM(...??????...);
double * retpointM();
private:
double M[3][3];
};
int main()
{
myClass moo;
double *A[3][3];
moo.getpointM( A ); ???
A = moo.retpointM(); ???
}
我想将指针传递给外部的 M
矩阵。这可能很简单,但我找不到 &
和 *
等的正确组合。
感谢您的帮助。
最佳答案
double *A[3][3];
是 double *
的二维数组。你想要 double (*A)[3][3];
。
然后,注意 A
和 *A
和 **A
都具有相同的地址,只是类型不同。
制作 typedef 可以简化事情:
typedef double d3x3[3][3];
这是 C++,你应该通过引用传递变量,而不是指针:
void getpointeM( d3x3 &matrix );
现在您不需要在类型名称中使用括号,编译器会确保您传递的是正确大小的数组。
关于c++ - 将指针传递给二维数组 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2308829/