回覆列表
  • 1 # 使用者917376507636

    typedef struct Item

    {

    DATA data; // 你想要儲存的一些屬性等

    int iSize; // 後續資料的大小

    char acData[1]; // 從這裡開始記錄你的資料

    } Item;

    每次為一個新的 Item 申請空間時,申請大小為:

    sizeof(Item) + iDataSize

    這裡的 iDataSize 就是你想儲存的活用空間大小。

    呼叫的時候,直接寫結構體的 acData[n] 就可以了,可能會浪費幾個位元組的空間,但這些應該可以忽略。

    原理是將 acData[0] 當作資料開始的部分,而 acData[n] 雖然越界了,但在你申請的空間範圍內,所以不會有問題。

    另外一種方法是在結構體裡宣告一個指標,用指標來記錄資料的位置。

  • 中秋節和大豐收的關聯?
  • 形容一個人奮鬥的時候無人關照,當成功之後就倍受追捧都過來交朋友。記得有句詩還是俗語形容得相當貼切?