gpt4 book ai didi

c - 当您在函数中分配内存时,返回时它会自动释放吗?

转载 作者:行者123 更新时间:2023-11-30 18:33:19 25 4
gpt4 key购买 nike

这是我的代码:

    char* sub_str(char* str, const int start_index, const int length) 
{
char* new_str = (char*) calloc(length, sizeof(char));
for (int i = start_index; i < length + start_index; i++)
{
new_str[i - start_index] = str[i];
}
return new_str;
}

我如何释放 new_str 因为我必须归还它?

最佳答案

当函数返回时,使用malloc或相关例程分配的内存不会自动释放。 (在通用多用户操作系统中,当你的程序结束时,你的程序使用的所有内存都会被系统释放。)

调用此函数的例程负责释放内存(或者必须将该义务传递给其调用者)。例程 sub_str 的文档应清楚地说明它分配内存并且调用者负责释放它。

关于c - 当您在函数中分配内存时,返回时它会自动释放吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58126115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com