基本上我想知道的是,如果我想在程序执行之间保存RAM中的数据;因为如果我写下RAM中我要保存的内容,那么在程序结束后我可以将信息存储在RAM中。我可以这样做:即使程序关闭,是否可以将程序数据保存在RAM中?
int *p = 10;
send_to_database(p); // Send the location in memory to some server
p = null_ptr;
del p;
The program finishes running
The program starts running again
int *p;
p = get_from_db(user_token);
我想我真的想知道的是我可以故意泄漏内存,但稍后再回来吗?它不会被任何类型的垃圾收集处理,因为现在我们会简单地忘记它的位置。然后下一次我运行这个程序时,我会查看我在RAM中存储了什么东西,然后将它重新加载回来。
只是没有人会感到震惊,这是一个纯粹的理论问题。我想到,你可以做一些非常时髦的用户身份验证,只要计算机没有关闭,它只会持续登录。由于身份验证令牌会保存到每个人的计算机上的不同位置,这让我觉得在程序关闭时难以搜索到身份验证令牌的位置。
程序关闭后操作系统是否会清除所有分配的内存(包括泄漏的内存)?请注意,我不知道这一点,但这是我看到我自己的内存泄漏(Visual Studio + Windows 7) – DrDonut
@DDDonut我认为,当VS运行的东西,它可以跟踪内存使用更好比操作系统通常会。尽管我可以完全做到这一点。我不确定是否新版操作系统会对每个程序进行沙盒处理,或者它们是否允许您写入任何可用内存。 –
这可能是,我不知道。另外一点:一旦我试图让一个程序写入另一个程序的内存空间作为共享数据的手段,这就使用了gcc和Windows XP。我无法得到这个工作,但看看这个:http://doc.qt.io/qt-5/qtcore-ipc-sharedmemory-example.html – DrDonut