sách gpt4 ai đã đi

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

In lại 作者:行者123 更新时间:2023-12-05 09:05:43 hai mươi bốn 4
mua khóa gpt4 Nike

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”变量是使用trung tâm 初始化的。难道我们不必“释放”这个“toReturn”变量吗?

我们在C中返回这些变量的时候不是必须释放它们吗?我仍然找不到明确的答案,也找不到返回时释放它的方法。谁能给我解释一下?

1 Câu trả lời

我假设您的问题是:调用 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);

另一种选择是使用对 trung tâm 的单个调用来分配 toReturn,在这种情况下,只需调用 miễn phí 即可释放它。

关于c - 在 c 中使用 malloc 时的自由变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66835565/

hai mươi bốn 4 0
Bài viết được đề xuất: c# - 在 API 中使用任务并行库
Bài viết được đề xuất: amazon-web-services - AWS Kubernetes 中缺少 NVMe SSD
Bài viết được đề xuất: Lệnh Docker để xóa mọi thứ
Bài viết được đề xuất: rust - 是否可以只使用 `macro_rules!` 来实现这个宏?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com