doubleの配列を保持するdouble *をmyクラスのコンストラクタに渡そうとしています要素にvalue要素を割り当てます。クラス関数に '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[]
は正常にアクセスでき、私の主な機能では過去のinput_data[0]
のデータに索引付けすることができます。
私はこれをこのようにしてはならないと仮定しており、適切な方向への任意の動きを感謝します。
あなた 'マトリックス:: data'ように見えるんどのように?どこでどのように初期化されますか? – Griwes
ここに掲載されたコードに問題はありません。あなたのクラス定義を投稿できますか? – Dennis
@Griwesは 'data'が動的に割り当てられているようだから(MとNがパラメータとして渡されます)、これは問題だと思われます。彼はメモリを割り当てていません。 –