我需要对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
分配给矩阵不会执行任何操作。
有什么建议吗?