基本上我想知道的是,如果我想在程序執行之間保存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