如何在不知道大小的情况下取消分配不规则的***矩阵?

时间:2019-01-24 18:37:27

标签: c dynamic dynamic-memory-allocation

我必须创建一个函数 void destroy(int *** matrix);用于重新分配矩阵 而且我不知道如何在不知道其大小的情况下对其进行分配

我想要一些想法或代码示例。

1 个答案:

答案 0 :(得分:2)

您必须有一个约定,仅需要释放前哨值(例如NULL)之前的指针。

void destroy (int ***matrix) {
    if (matrix == NULL) return;

    for (int i = 0; matrix[i]; ++i) {
        for (int j = 0; matrix[i][j]; ++j) {
            free(matrix[i][j]);
        }
        free(matrix[i]);
    }
    free(matrix);
}