我想在 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/