2013-07-21 28 views
1

所以,如果我想保存內存位置上的數字,然後檢索它們,可能有哪些方法? (這是我的家庭作業。)保存和檢索內存位置的值

假設我計算兩個數字的總和,將它保存在內存中,再次計算它,再次保存它等等。現在,我該如何檢索它們?

我想過了關於arrays。在連續的記憶位置保存數字。這是一個簡單的方法。但是,這是一個矛盾。我的老師希望我節省很少的結果,然後再回收,當用戶再次啓動過程時,從開始啓動分配。

同樣,可以使用帶有計數器的數組,但我認爲他想要其他的東西,比如將內存位置上的數字保存爲0X1000或其他東西。

有什麼出路嗎?對不起,我是C初學者。謝謝。

+3

如果即使你不明白你應該做什麼,我們該如何幫忙?詢問你的老師的澄清,然後嘗試自己實施,然後到這裏尋求幫助,如果你卡住了。 – Mat

+1

如果您想要在程序運行之間保留數據,請使用文件進行查看。你可以閱讀[fopen](http://linux.die.net/man/3/fopen),[fwrite](http://linux.die.net/man/3/fwrite)和[fread] (http://linux.die.net/man/3/fread),如果這聽起來像一個有用的方法。 – simonc

+1

在C中,將數據存儲在尚未分配給程序的內存中是未定義的行爲,所以'0X1000'的技巧當然是不可能的。 – dasblinkenlight

回答

2

調查shared memory segments。它們用於進程間通信,這正是您所需要的,因爲在您的程序的不同調用(實際上它的各種進程實例)之間存在內存。

你可以有一個進程維護段和其他進程附加到它並從中讀取/寫入。

這個link也包含解釋和大量的如何使用它們的例子。

+0

幫了我一噸。感謝鏈接! –

+0

沒問題,很高興幫助:) – Nobilis