私は自分のプログラムにそのような行列を持っています:
double m[3][4] =
{
{2, 4, 5, 7},
{4, 5, 1, 12},
{9, 12, 13, -4}
};
double**
そして、それを型にキャストしたいと思います。
すでに simpledouble** a = (double**)m;
を試しましたが、機能しません (値を読み取ろうとすると、「アクセス違反読み取り場所 0x00000000.」が表示されます。これは、アドレスから読み取ろうとしていることを意味しますNULL
。
私はほとんどうまくいく解決策を見つけました:
double *b = &m[0][0];
double **c = &b;
field を読み取ると機能しc[0][any]
ますが、 field から値を読み取ろうとすると、同じ NULL アドレス読み取りの問題が発生しますc[1][0]
。
double m[3][4]
配列を typeにキャストする適切な方法は何double**
ですか?
編集:それは不可能だとあなたは言います。そこで、問題を少し変更します。2 次元 double 配列をパラメーターとして関数に渡すにはどうすればよいですか? 私の関数にはプロトタイプがあります:
void calculate(double **matrix, int n); //where matrix size is always n by n+1
そして、動的に割り当てられた配列でうまく機能しています。それを機能させる唯一の方法は、新しい動的配列を割り当て、元の静的配列を要素ごとにコピーすることだとは思いません...