【发布时间】:2011-04-03 00:34:13
【问题描述】:
在 C++ 中,我想初始化一个双矩阵(二维双数组),就像我通常在没有这样的指针的情况下所做的那样:
double data[4][4] = {
1,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1
};
但是,由于我想返回并将它传递给函数,我需要它作为 double** 指针。所以,基本上我需要以一种很好的方式初始化数据(如上),但之后我需要保存指向二维数组的指针,而不会在函数退出时丢失数据。
对此有任何帮助吗? :-)
【问题讨论】:
-
为什么需要它作为
double**?double (*)[4]有什么问题? -
这是 C++。这可以是一个类,以这个数组作为成员,在调用成员函数时将引用传回吗?
-
Passing two-dimensional array via pointer 的可能重复项是 C,不是 C++,但问题完全相同。
-
所有答案都没有击中靶心。我发现我可以这样做: double ** d = new double[4][4];但是,我将如何在不编写诸如 d[0][0] = 1; 之类的繁琐代码的情况下初始化值d[0][1] = 0;...
-
不,你不能。比如g++拒绝编译你的sn-p:
error: cannot convert 'double (*)[4]' to 'double**' in initialization.
标签: c++ pointers initialization multidimensional-array