在c中使用malloc时的自由变量

卡维什卡·马杜尚
char **loadValues()
{
    char **toReturn;
    int i;
    toReturn = malloc(5 * sizeof(char *));
    for (i = 0; i < 5; i++)
    {
        toReturn[i] = malloc(25);              //Change the size as per your need
        strncpy(toReturn[i], "string", i + 1); //Something to copy
    }
    return toReturn;
}

我复制了上面的部分代码。其中,“toReturn”变量通过使用malloc. 我们不需要“释放”这个“toReturn”变量吗?

当我们在 C 中返回它们时,我们是否必须释放这些变量。我仍然找不到明确的答案,并且在返回时找不到释放它的方法。有人可以向我解释一下吗?

奥列尔诺

我假设您的问题是:调用loadValues和接收它返回的指针的函数如何释放加载的值。

如果我们保持loadValues原样,最好的解决方案是创建另一个函数,freeValues在我们完成值后调用它:

void freeValues(char **values)
{
    for (i = 0; i < 5; i++)
    {
        free(values[i]);
    }
    free(values);
}

然后你可以在你的主程序中做这样的事情:

char **values = loadValues();
// ... use values for something
freeValues(values);

另一种选择是使用单个调用 toReturn 分配 toReturn malloc,在这种情况下,只需调用 to 即可释放它free

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Python

使用自由变量时是否创建了名称空间?

来自分类Dev

在C中使用**时的差异

来自分类Dev

在C中使用递归函数时避免使用全局变量

来自分类Dev

在使用C malloc的C ++构造函数中使用new

来自分类Dev

在Pthread中使用malloc

来自分类Dev

如何在C ++程序中使用hbw_malloc库?

来自分类Dev

在C中使用extern变量

来自分类Dev

如何在C中使用malloc()分配结构数组?

来自分类Dev

自由(); 和malloc(); 持续崩溃(C)

来自分类Dev

在scanf中使用符合c ansi标准的malloc

来自分类Dev

C,Valgrind自由,因为没有任何malloc的大分配

来自分类Dev

提出Ajax请求时,如何在使用c#的url参数中使用jquery变量?

来自分类Dev

在C ++中使用多线程处理时,是否可以读取半写的损坏的原始变量?

来自分类Dev

在C中使用malloc确保用户输入某些数字

来自分类Dev

在@ViewChild变量中使用spyOn时出错

来自分类Dev

在C#中使用const时出现“未使用变量”

来自分类Dev

在C中使用malloc不起作用

来自分类Dev

C:在malloc()中使用getpagesize()

来自分类Dev

在Android中使用malloc / free

来自分类Dev

在malloc中使用sizeof

来自分类Dev

php oop。如何自由使用变量?

来自分类Dev

在SFunction中使用malloc时出错

来自分类Dev

在C中使用malloc保留内存

来自分类Dev

在C中使用指针时未获取变量的指定值

来自分类Dev

在 C 中使用指针时,我们何时以及为什么需要使用 malloc?

来自分类Dev

在C中使用malloc后需要为数组分配变量

来自分类Dev

在C语言中使用VULKAN VkEnum-foo-bar函数时如何避免VLA和malloc?

来自分类Dev

为什么 jshell 允许在 lambda 表达式中使用非最终的自由变量?

来自分类Dev

何时在 C 中使用 calloc 或 malloc

Related 相关文章

热门标签

归档