我目前正在浏览一些旧的大学 C++ 代码片段。那时,另一个类中的一个被分配使用双指针和二维数组来做一个矩阵类。幸运的是(或事后看来不幸)我从来没有机会学习这样的东西。我们毕业时我借用了他们的代码以备将来审查。如果有人可以向我解释这个片段中到底发生了什么:
//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 是一个双精度类型的**。
据我了解, _nrows 和 _ncols 的值为 1(表示它们的大小)。然后,代码在堆中动态创建一个 double* out,其元素等于 _nrows;问题是,我不知道接下来会发生什么。为什么_ncols对应的数组不是指针?为什么分配_coef[0]?