在 C++ 中,我想初始化一个 double 矩阵(二维 double 组),就像我通常在没有指针的情况下所做的那样:
double data[4][4] = {
1,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1
};
但是,因为我想返回并将它传递给函数,所以我需要它作为 double**
指针。所以,基本上我需要以一种很好的方式初始化数据(如上所述),但之后我需要保存指向二维数组的指针,而不会在函数退出时丢失数据。
有什么帮助吗? :-)
最佳答案
除非你对指针特别在意,否则我更喜欢这里的引用
void init( double (&r)[4][4]){
// do assignment
r[0][0] = 1;
}
int main(){
double data[4][4] = {
1,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1
};
init(data);
}
顺便说一句,如果您以这种方式将它传递给一个函数,您将是“赋值”而不是“初始化”。
关于C++多维数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3554205/