我想在C中创建一个分配动态矩阵的函数;我们的想法是分配一个数组,其元素是指向数组的指针;如果我想在函数中执行此操作,那么正确的代码是什么?
此
f(***matrix)
或者
f(**matrix)?
我会说第一个,但我不确定。谢谢!
答案 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;
}