假设我使用指针动态分配了一些内存,但程序退出前没有释放它们。这些内存会在程序退出时自动释放,还是会出现内存泄漏直到我重新启动计算机?
假设我使用指针动态分配了一些内存,但程序退出前没有释放它们。这些内存会在程序退出时自动释放,还是会出现内存泄漏直到我重新启动计算机?
现代操作系统会为特定的进程分配内存,并在进程终止时清理内存。因此,您的程序或libc不会释放内存,但操作系统会释放内存。
这不是一个C语言问题。堆的实现取决于编译器和程序退出后操作系统的行为。据我所知,所有现代操作系统在程序退出时都会释放内存资源。但某些嵌入式系统或驱动程序可能不适用。