C++多维数组初始化

标签 c++ pointers initialization multidimensional-array

在 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/

相关文章:

c++ - 从存档加载 DLL

c++ - 是否有显式实例化深层模板类的技巧?

C++程序错误

jquery工具: Calling doc ready initialization in script loaded by ajax

java - 不断收到未声明的变量错误,我不明白从哪里来

c - 如果我定义一个 X 元素的字符数组并向其中添加 Y (>X) 元素会怎样?

c++ - 将 VARIANT 从 COM 编码回 C++ 客户端

c - 将int数组在内存中的新空间重新分配为0

c - C 标准对指向结构的指针及其第一个成员有何规定?

c++ - 访问指向对象指针 vector 的指针的第一个元素?