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

时间:2016-10-22 08:37:18

标签: c function matrix allocation

我想在C中创建一个分配动态矩阵的函数;我们的想法是分配一个数组,其元素是指向数组的指针;如果我想在函数中执行此操作,那么正确的代码是什么?

f(***matrix)

或者

f(**matrix)?

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

1 个答案:

答案 0 :(得分:2)

你可能想要像

这样的东西
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;
}