c - 在 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);
}
解决方案
推荐阅读
- google-cloud-platform - GCP - 调用者没有权限
- javascript - 重定向(ssr)后如何重置/不保留vuex存储中某些属性的状态?
- python - 在多个 DataFrame 上调用自定义方法
- python-3.x - 比较两个不同 django 模型中的字段
- python - Mypy:dict值的类型不会随着赋值而改变,而变量的类型会改变
- r - 将小于总数 x% 的属性重新分类为“其他”
- python - Python pygame精灵在到达屏幕底部后没有向上移动
- node.js - 我应该在每次查询/插入后打开/关闭数据库连接吗?
- google-apps-script - App Script - 在 SlidesApp 中的表格中获取行高
- cyclomatic-complexity - 了解 McCabe 的圈复杂度