将指针传递给2D数组c ++

Moo*_*min 6 c++ arrays multidimensional-array pointer-to-member

我有很长一段时间遇到这个问题 - 我将固定大小的2D数组作为类成员.

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(); ???

} 
Run Code Online (Sandbox Code Playgroud)

我想将指针传递给M外面的矩阵.这也可能是很简单的,但我就是找不到适当的组合&*

感谢帮助.

Pot*_*ter 9

double *A[3][3];是一个二维的double *s 数组.你想要的double (*A)[3][3]; .

然后,请注意,A*A**A所有具有相同的地址,只是不同的类型.

制作typedef可以简化事情:

typedef double d3x3[3][3];
Run Code Online (Sandbox Code Playgroud)

这是C++,你应该通过引用传递变量,而不是指针:

void getpointeM( d3x3 &matrix );
Run Code Online (Sandbox Code Playgroud)

现在您不需要在类型名称中使用parens,并且编译器确保您传递的是正确大小的数组.