如何在C中自动释放多个malloc?

Val*_*scq 1 c malloc free

我想在C程序结束时free自动多个malloc内存.

例如 :

str1 = malloc(sizeof(char) * 10);
str2 = malloc(sizeof(char) * 10);
str3 = malloc(sizeof(char) * 10);
Run Code Online (Sandbox Code Playgroud)

我不想要这样的函数:

void   my_free()
{
    free(str1);
    free(str2);
    free(str3);
}
Run Code Online (Sandbox Code Playgroud)

但是一个释放程序期间分配的所有内存的函数.

P.P*_*.P. 6

但是一个释放程序期间分配的所有内存的函数.

C中没有这样的功能.C不自动进行内存管理.因此,您有责任跟踪内存分配并适当地释放它们.

大多数现代操作系统(可能不是嵌入式系统)将回收在进程终止时执行期间分配的内存.所以你可以跳过来电free().但是,如果您的应用程序是一个长期运行的应用程序,那么如果它继续分配内存,这将成为一个问题.根据您的应用程序,您可以设计一个适当释放内存的策略.