私は現在、C++ コードのいくつかの古い大学のスニペットを閲覧しています。当時、他のクラスの 1 つは、二重ポインタと 2D 配列を使用して行列クラスを実行するように割り当てられていました。幸いなことに(または後から考えると不運なことに)、そのようなことを学ぶ機会はありませんでした. 将来のレビューのために卒業したときに彼らのコードを借りました。誰かがこのスニペットで正確に何が起こっているのか説明してください:
//This is a constructor of a 1x1 matrix
signal::signal(){
_nrows = 1;
_ncols = 1;
_coef = new double*[_nrows];
_coef[0] = new double[_ncols];
_coef[0][0] = 0.0;
}
補足として、_coef は double 型の ** です。
私が理解していることから、_nrows と _ncols には 1 の値が与えられます (サイズを意味します)。次に、コードは、要素が _nrows に等しい double* out をヒープに動的に作成します。問題は、次に何が起こるか正確にはわからないということです。_ncols に対応する配列がポインタではないのはなぜですか? _coef[0] が割り当てられているのはなぜですか?