c++ - 将指针传递给二维数组 C++

标签 c++ arrays multidimensional-array pointer-to-member

我遇到这个问题很长时间了 - 我有固定大小的二维数组作为类(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/

相关文章:

javascript - 将图像一张一张地添加到表格中

c - 无法正确打印整个数组

javascript - 计算多维数组中具有最高值属性的对象

c - 对于 "int demo[4][2]",为什么它们的大小都相同 : &demo[1], demo[1],demo+1,*(demo+1) ?类型呢?

c++ - 如何调用使用 IDispatch.Invoke 接收浮点值的函数?

C++ 类构造函数限定为 __attribute__((pure)) 或 __attribute__((const))

c++ - 我可以在 QNX 中使用 C++11 吗?

javascript - 将 JavaScript 拆分成小部分以添加到数组中

c++ - 超过 N 时位移位不可预测的结果

php - 数组 : How to put value in array index?