c++ - 如何将 'double*' 传递给类函数,并将该值应用于该类中的另一个 'double*'

标签 c++ pointers argument-passing dynamic-arrays class-constructors

我正在尝试将一个包含 double 组的 double* 传递到我的类的构造函数中,并为元素分配值元素。

主要内容:

int main()
{
    double* data = new double[4];
    data[0] = 1.1; data[1] = 2.2; data[2] = 3.3; data[3] = 4.4;

    Matrix a(2,2,data);

    return 0;
}

这是我的构造函数:

Matrix::Matrix(int M, int N, double* input_data)
{
    this->M = M;
    this->N = N;

    cout << "Matrix Constructor: M: " << M << "\tN: " << N << endl;

    for (int i = 0; i < M; i++)
    {
        for (int j = 0; j < N; j++)
        {
            data[i*N+j] = input_data[i*N+j]; //***This is the problem***
        }
    }

}

在构造函数中尝试索引过去的 input_data[0] 会导致崩溃。 data[] 可以正常访问,我可以在我的 main 函数中索引过去的 input_data[0] 数据。

我假设这不应该以这种方式完成,并且会感谢任何朝着正确方向的插入。

最佳答案

您似乎没有在构造函数中为 data 分配内存。

Matrix::Matrix(int M, int N, double* input_data)
{
   data = new double[M*N];
   //....
}

关于c++ - 如何将 'double*' 传递给类函数,并将该值应用于该类中的另一个 'double*',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9574082/

相关文章:

javascript - 如何将参数传递给回调并且不丢失绑定(bind)?

javascript - 如何将表单输入传递到 javascript iframe URL?

c++ - Ada 到 C++ : Pass an unsigned 64-bit value

c++ - 如何在 Microsoft Visual Studio 2017 中检查 C++ 版本

arrays - char 之前的预期表达式

c - 指针和数组—艰苦学习C

java - 将参数传递给方法是否总是在 java 中从左到右排序?

c++ - 主机中同一 VST 乐器的多个实例播放相同的 MIDI 声音

c++ - Opencv HoughLines 线西塔?

c - C 中带有指向其他结构数组指针的结构的问题