typedef struct trie
{
struct trie* c[38];
unsigned int occ;
} trie_t;
occ只是一個數字,用於存儲單詞的出現次數。如果0:節點不是一個單詞。 c [38]用於:26個字母+10個數字+'_'+'。'
我想序列化它,以便我可以將它映射回內存,而無需每次都構建它。 問題是我用malloc來創建Trie,所以所有的內存都不是連續的。
我想強制Trie創建的內存是連續的,所以我可以用offset來替換指針並序列化整個結構。
這是正確的路嗎? 它甚至可能與malloc或我應該建立自己的內存分配器來做到這一點?
那麼這個靜態一旦建立 - 你不更新它? –
是的。沒有更新。 Trie是從不會改變的單詞列表創建的。 – IggY
然後只是建立它。理解你可能會「彎曲」一些C規則,並且不得不依靠可怕的「無證行爲」來進行尋址,但沒有什麼大不了的。 –