我正在尝试将包含双精度数组的 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[]
可以正常访问,我可以input_data[0]
在我的主函数中索引过去的数据。
我假设这不应该以这种方式完成,并且希望朝着正确的方向轻推。