我想知道,假设我正在调试代码,并且在任何时候我分配了一些内存和断点命中,例如:
1: Statement to allocate 1 MB memory in **C**.
2: Any other statement where **BREAKPOINT HIT**.
现在我的问题是:
如果是,那么如何确认内存和资源是否已释放。
答案 0 :(得分:4)
在现代操作系统上,当程序终止时,程序的所有内存都将返回到系统,这将在任何一种情况下发生。这可能不会在某些嵌入式系统上发生,但您不会在这些系统上运行IDE。
对于除内存之外的其他资源,例如打开文件,设备等,操作系统通常会回收所有资源(除非它们仍被其他进程使用),但对于某些系统和某些资源,在某些条件下,资源可能会丢失或被锁定(应该被视为操作系统或设备驱动程序中的错误)。
就确定系统实际释放内存而言,这可能非常困难,因为系统会将内存分配给缓冲区和交换区域,并且不一定要计算可用空间。对于其他资源......如果你无法获得它们,那么它们就不会被释放。