我希望即使在程序终止后也能保留一个变量。换句话说,即使应用程序退出main函数,我也希望变量保留在内存中。因此,如果我的应用程序再次启动,它可以直接从内存中访问该变量。这甚至可能吗?动态分配,例如array=new int[size]
,诀窍?
答案 0 :(得分:3)
不,所有内存都由进程终止时的os回收。你必须将你想要的东西保存到文件中。
答案 1 :(得分:2)
免责声明: 将值存储到文件或使用某些框架功能(如QSettings)应优先于以下方法。
如果您确实希望您的变量保留在内存中,并且您可能有可能在重新启动时丢失值,请向操作系统询问共享内存。
如果您有像Linux或Windows这样的POSIX兼容平台,请使用POSIX functions。引用手册:
POSIX共享内存对象具有内核持久性:共享内存对象将一直存在,直到系统关闭,或者直到所有进程都已取消映射该对象并且已使用
shm_unlink
删除它。
请注意,这会引入一种内存泄漏:您的变量会消耗掉 即使在应用程序终止后,内存仍然存在。