创建一个函数来分配一个动态矩阵

Create a function to allocate a dynamic matrix

我想在 C 中创建一个分配动态矩阵的函数;这个想法是分配一个数组,其元素是指向数组的指针;如果我想在一个函数中这样做,正确的代码是什么?

这个

f(***matrix)

或这个

f(**matrix)?

我会说第一个,但我不确定。谢谢!

你可能想要这样的东西

double **
allocate_array(size_t rows, size_t cols)
{
    double **array = malloc(cols * sizeof(*array));
    if (array == NULL) return NULL;
    for (size_t i = 0; i < cols; i++) {
        array[i] = malloc(rows * sizeof(*array[i]));
        for (size_t j = 0; j < rows; j++) array[i] = 0.0;
        if (array[i] == NULL) {
             while (i != 0) free(array[--i]);
             free(array);
             return NULL;
        }
    }
    return array;
}