c中的2D动态分配数组并释放它们

时间:2018-11-06 15:49:55

标签: c

我需要对C中的序列进行全局比对。 为此,我以这种方式制作了2D动态分配的数组:

Cell **matrix;
matrix = (Cell **)malloc(rows * sizeof(Cell *));
for (int r = 0; r < rows; r++)
{
    matrix[r] = (Cell *) malloc(columns * sizeof(Cell));
}

Cell代表宏表中的一个表,rows是一个序列的长度,而columns是第二个序列的长度。

进行第一次迭代后,由于释放数据的问题,整体变得越来越庞大。

我以传统方式制作了free

for (int r = 0; r < rows; r++)
{
    free(matrix[r]);
    matrix[r] = NULL;
}
free(matrix);

NULL分配给矩阵不会执行任何操作。

有什么建议吗?

0 个答案:

没有答案