我是否必须在C中使用malloc()分配的内存上调用free()?

时间:2018-05-19 19:45:20

标签: c memory malloc

如果我使用malloc()分配内存,那么即使程序退出,我还是必须调用free()吗?

#include <stdlib.h>
#include <stdio.h>

int main()
{
    int *a = malloc(sizeof(int));
    *a = 10;
    printf("%d", *a);
    free(a);
    return 0;
}

如果我不打电话给free(),程序退出后内存会发生什么?

2 个答案:

答案 0 :(得分:1)

程序退出时将释放所有内存。使用free的目的是让你不会导致内存泄漏,这会导致你的程序在运行时占用的内存超过它所需的内存。

答案 1 :(得分:0)

你不必,但你应该避免内存泄漏。