假設我們有以下結構:寫動態分配結構到文件
struct Something {
int i;
};
如果我想在一個文件中寫入這種類型(動態分配),我這樣做的任何數據:
struct Something *object = malloc(sizeof(struct Something));
object->i = 0; // set member some value
FILE *file = fopen("output_file", "wb");
fwrite(object, sizeof(struct Something), 1 file);
fclose(file);
現在,我的問題:
我們如何做到這一點與結構什麼包含指針?我使用相同的方法測試,它工作正常,數據可以被讀取,但我想知道是否有任何風險?
指針只在程序的特定實例中才有用。如果你將一個指針寫入一個文件,那麼稍後將它讀回到其他進程中,這將只是一個隨機數並且會導致嚴重問題 - 新實例的內存佈局/使用情況將完全不同。 – 2015-02-06 19:00:00
如果您正在討論像鏈接列表這樣的結構,那麼按照無指針的順序編寫數據。閱讀時,您需要在讀取數據後重新創建帶有指針分配的列表。 – 2015-02-06 19:00:41