2010-08-17 46 views
2

現在我有一個數據庫,其中一個字段類型是一個字節數組。但是將內存轉換爲字節數組?

現在我有一塊內存或一個對象。如何將這段內存或對象轉換爲字節數組,然後將字節數組存儲到數據庫中。

假設對象是

Foo foo 

存儲器是

buf   (actually, don't know how to declare it yet) 

數據庫字段是

byte data[256] 

只有像x'1'十六進制值可以被插入到該字段。

非常感謝!

回答

3

有兩種方法。

一個很簡單,但有嚴重的侷限性。您可以編寫Foo對象的內存映像。缺點是,如果您更改了編譯器或Foo的結構,那麼您的所有數據可能不再可加載(因爲圖像不再與該對象匹配)。要做到這一點,只需使用

&Foo 

作爲字節數組。

另一種方法稱爲'serialization'。如果對象更改 可以使用它,但會增加大量空間來編碼信息。如果你只有256個字節,那麼你需要注意序列化不會產生太大的字符串來保存。

+0

它可以幫助你’到C++數據結構的任意一組的可逆解構意味着字節序列。」顯示演員... – 2010-08-17 18:44:18

1

Boost有一個serialization library你可能想看看,雖然你需要小心創建的對象的大小。如果您只使用一小組類來完成此操作,則可能需要自己編寫編組和解組函數。

從文檔:

「在這裏,我們使用術語‘系列化