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

标签 c function matrix allocation

我想在 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;
}

关于创建一个函数来分配动态矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40190042/

相关文章:

c - 如何将指针指向函数? (SVD 示例)

powershell - 如何在 powershell 中设置默认参数值?

R:两个数值矩阵的快速笛卡尔积计算

java - 不使用现有算法或排序技术对整数元素进行排序

c - 用 int 乘以并添加到 C 中的 int 数组的最快方法?

c - 共享内存的访问控制不起作用?

c++ - 从函数 : by value VS by pointer 返回大对象

c - 在函数调用中使用它时,将值添加到结构中的指针

python - 如何从 Numpy 矩阵中的每一列获取值

matrix - 为什么在计算矩阵/多维数组的FFT时需要计算转置?