Работа с многомерными массивами в c ++ - это боль в заднице. Один из самых простых способов - использовать простой массив и вручную преобразовывать координаты в линейный индекс.
Таким образом, вам не нужно жестко связывать размеры матрицы в функции, вам не нужно выделять / освобождать память, вы можете повторно использовать и переинтерпретировать данные и т. Д. Конечно, было бы лучше инкапсулировать их в класс, но это только пример.
void reset(double matrix[], int rows, int cols, double value) {
for (int i = 0; i < rows * cols; i++)
matrix[i] = value;
}
void print(double matrix[], int rows, int cols) {
for (int r = 0; r < rows; r++) {
for (int c = 0; c < cols; c++)
printf("%f ", matrix[r * cols + c]);
printf("\n");
}
}
int main() {
double m[3 * 3];
reset(m, 3, 3, 0.0);
print(m, 3, 3);
printf("\n");
double n[2*5];
reset(n, 2, 5, 1.0);
print(n, 2, 5);
return 0;
}