行列に問題があります。私は単純な行列を持ち、他の値に応じて値を割り当てたいと思っていました。Matrix- "アクセス違反の書き込み場所0x00900B0C" - C++のエラー
私はsthを持っています。このように:私は行列を埋めるために望んでいた次のステップでは、いくつかの変数と
int Matrix[10][1000]; //<-- i´m not sure how to implement a dynamical matrix correctly
// so i just defined its size like this
int i = 0;
int j = 0;
int iter=0;
int Iterator=1000;
のような行列を定義する最初
:
i --> // i is my x-value and j my y-value in the matrix
j 25 25 25 25 25 // inital condition values
| 27 26 25 .. .. // filling the matrix with values depending on a
v 31 28 .. .. .. // border condition, the inital values and neighbour values.
.. .. .. .. .. //and so on
私はコードでそれを説明しよう
しかし、私にはこのエラーが表示されます。「アクセス違反の書き込み位置0x00900B0 C "まだ..そしてなぜ私は取得していないのですか?
for (i = 0; i <= Size_X; i++) {
Matrix[i][0] = 25;
しかし、私が思う主な問題、そして私のコードの主要な部分は、他のフィルインです:
はさらに私のコードは、inital値で行列の最初の行を埋めるために、このようになります。マトリックス内のセルをneigbourすることも反復し、参照元の行列のセル:
do {
for (j = 1; j <= Size_Y; j++) {
Matrix[0][j] = Matrix[0][j - 1] + Fo*0.5*(2.0*Bi*(Umgebungstemperatur - Matrix[0][j - 1]) + 2.0*(Matrix[0 + 1][j - 1] - Matrix[0][j - 1]**) + 2.0*Bi*(Umgebungstemperatur - Matrix[0][j]) + 2.0*(Matrix[0 + 1][j] - Matrix[0][j]));
Matrix[Size_X][j] = Matrix[Size_X][j - 1] + Fo*0.5*(2.0*Bi*(Umgebungstemperatur - Matrix[Size_X][j - 1]) + 2.0*(Matrix[Size_X - 1][j - 1] - Matrix[Size_X][j - 1]) + 2.0*Bi*(Umgebungstemperatur - Matrix[Size_X ][j]) + 2.0*(Matrix[Anzahl_dx- 1][j] - Matrix[Size_X][j]));
for (i = 1; i < Size_X; i++) {
Matrix[i][j] = Matrix[i][j - 1] + Fo*0.5*(Matrix[i - 1][j - 1] - 2.0*Matrix[i][j - 1] + Matrix[i + 1][j - 1] + Matrix[i - 1][j] - 2.0*Matrix[i][j] + Matrix[i + 1][j]);
}
}
iter = iter + 1;
} while (iter != Iterator);
}
最後に、私はちょうど.txtファイルまたは.csvファイルに行列を書きたいが、それはちょうど私との最初の行を提供します正しい値とプログラムは後に分解されます。
'size_X'と' size_Y'は何ですか? – 4386427
それはちょうど行列のサイズです - > size_X = 11とsize_Y = 1001 –
私はあなたのループで '<'の代わりに '<='を使っているからです。あなたのマトリックスにインデックス11はありますか?いいえ、ありません。 – ForceBru