复制:
比方说:
int main()
{
char* test = new char[50000];
return 0;
}
程序完成后分配的内存发生了什么变化?它会立即为其他应用程序释放吗?或者过了一段时间?或者是它永远输给了系统?还是它被交换到磁盘上,不再返回RAM?或者是完全不同的东西?
我想知道在主要的3操作系统上会发生什么: Windows (XP和XP,如果有什么不同),Linux,Mac。
为了好玩,我创建了一个项目,创建了大约5 GB的内存,并且没有删除它。只要应用程序在运行,“内存泄漏”就会存在。当我关闭应用程序的那一秒,内存就会在2秒内恢复正常,就好像我的程序从未运行过一样。所以这些问题必须被问出来。
Windows 7会在坏程序完成后清理内存泄漏吗?
所有的Windows版本都这样做吗?
Linux和Mac OS X环境可以做到这一点吗?