我使用内存分配并假设分配失败。 在退出之前,我是否必须释放程序中的所有内存? 这真的有必要吗? 可以退出()就够了吗?
如果我确实需要释放程序中的所有内存,假设我有大量的程序,其中包含大量信息。我怎么能设法做到这一点?
答案 0 :(得分:0)
在大多数操作系统中,进程拥有的所有内存在退出该进程时都会被释放。
答案 1 :(得分:0)
在退出之前,是否必须释放程序中的所有内存?是 这真的有必要吗?退出()是否足够?
只需要free()
成功分配的内存。
free()
获取malloc()
realloc()
和calloc()
返回的指针,因此如果这是NULL,则需要将此指针传递给free()
,然后不执行任何操作将由free()
完成,因此无需担心分配失败。
是exit()
就足够了,因为当您退出时,所有已分配的内存在许多操作系统中都会自动释放。
答案 2 :(得分:0)
嗯,这取决于。
如果您想在某些分配失败后继续,在结束时[或者不再使用内存分配之后,以较早者为准],您可以免费()成功分配的内存。
OTOH,如果您正在接受硬件,在分配失败后立即将应用程序退出,那么您可以避免免费使用一部分。