【发布时间】:2012-07-27 13:42:58
【问题描述】:
我希望有一个变量在程序终止后仍然存在。换句话说,即使在应用程序退出主函数后,我也希望变量保留在内存中。因此,如果我的应用程序再次启动,它可以直接从内存中访问该变量。这甚至可能吗?将动态分配,例如array=new int[size],你能做到吗?
【问题讨论】:
-
什么平台/操作系统?这在标准 C++ 中是不可能的,但很多平台都提供了类似的功能。
-
Windows 7. 哪些平台允许这样做?
-
Linux/UNIX 共享内存段浮现在脑海中。您可以使用内存映射文件进行操作,但无论如何它在重新启动后仍然存在。显然你不能
new[]来分配东西,但如果你小心的话,你可以使用自定义分配器(丑陋的)或放置新的。参见例如boost interprocess -
我注意到在 GPU 上分配内存时会发生这种情况。虽然我不确定这是一个可靠的“功能”。我也不明白为什么会这样。