首页 > 解决方案 > 在 c 中释放一个 char**[]

问题描述

char** args[3]主要声明,并且,malloc它在一个自己计算尺寸的函数中。现在我需要在失败的情况下和程序结束时(在主函数和其他函数中)释放内存,但我不知道数组大小。

如果我理解正确,(sizeof(args[0])/sizeof(args[0][0])只会在主要工作。

创建一个全局sizes[3]并在那里保存大小是一个坏主意/坏做法吗?

在这种情况下还有其他可能性吗(我的意思是不改变代码结构)?

我的免费功能如下所示:

void freeArr(char** parsedStr, int arrSize)
{
    int i =0;
    while(i < arrSize)
        free(parsedStr[i++]);
    free(parsedStr);
}

标签: cpointersmultidimensional-arrayfree

解决方案


推荐阅读