<分区>
我正在尝试编写一个小型 C++ 库来进行简单的矩阵计算。它由一个 Matrix 类和改变给定矩阵的静态成员函数组成。
我有一个函数可以为每个元素添加一个标量,但是循环不起作用:
// Member function to add a scalar to the matrix
void Matrix::add_scal(double** arr, double s) {
for (size_t x = 0; x < sizeof(arr) / sizeof(*arr); ++x) {
Serial.println("test");
for (size_t y = 0; y < sizeof(*arr) / sizeof(**arr); ++y) {
arr[x][y] += s;
}
}
}
“测试”只打印一次,内循环根本不运行。这是我用来创建矩阵的函数:
double** Matrix::init(int rows, int cols) {
double** temp = new double*[rows];
for (int i = 0; i < rows; i++) {
temp[i] = new double[cols];
for (int j = 0; j < cols; j++) {
temp[i][j] = 0.0;
}
}
return temp;
}
以下两行创建了一个矩阵并向其添加了一个标量:
double** test = Matrix::init(3, 3);
Matrix::add_scal(test, 2.5);