C中的自由特定类型的内存分配

时间:2016-09-29 12:35:25

标签: c malloc free

我发现了一种在C中分配矩阵的有趣方法,它允许使用[i][j]而不初始化为double matrix_a[nrows][ncols]。分配是

double (*matrix_a)[ncols] = (double (*)[ncols])malloc(sizeof(double) * (nrows) * (ncols));

但是我无法找到如何正确地释放这种类型的分配。它会像free(matrix_a)一样简单吗?

1 个答案:

答案 0 :(得分:6)

这是正确的。您只能传递freemalloc和家人返回的内容。因此,由于您执行了一项malloc,因此您只需free。{/ p>

另外,there is no need to cast the return value of malloc

double (*matrix_a)[ncols] = malloc(sizeof(double) * (nrows) * (ncols));