[問題] 請問有沒有關於這樣的 pattern....

看板C_and_CPP作者 (一天死去一點)時間15年前 (2009/03/19 14:40), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/2 (看更多)
Hi 大家好, 最近在寫一隻程式的時候遇到一個問題... 我們的程式分成兩個部份... 一個是上層的 UI. 一個是下層的 engine Engine 會從下層讀出資料,然後 UI 得到 engine 的資料,顯示在介面上 現在問題是資料格式有點複雜,它是長度不固定的串列 其元素是好幾層的樹狀結構,結構中包含大量字串以及串列 而且長度亦不固定 之前是用一堆類似這樣的 struct struct B { char id[MAX_STRING]; char name[MAX_STRING]; } struct A { char id[MAX_STRING]; char name[MAX_STRING]; int listCount; B listOfB[MAX_LIST]; }; 然後要的時後是這樣用 int aCount = Engine.GetACount(); A* aArray = new A[aCount]; Engine.GetA(aArray); A 裡面就是巢狀的 B... 而且實際的環境是 B 還包 C, C 又包 D. 每個 struct 的大小都是固定的 當初會這樣設計是為了記憶體管理的方便,希望都在 UI 端配置記憶體 Engine 只負責填資料 但是這樣做的結果是很浪費空間,struct 非常肥大,在 heap 上還可以, 但是在 stack 上配置一個 struct 就有可能塞爆 stack... 不知道一般應用上,像這樣的架構是不是有什麼 pattern 可以使用? 想了老半天想不到什麼比較好的方法... 謝謝各位 m(_ _)m -- 雁子回到了遙遠的北方 妳的名字我已想不起來 別怪我 生命太匆忙 http://blog.xamous.net -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 71.137.0.214

03/19 16:14, , 1F
A , B 都改成 物件 , id 與 name 都改動態記憶體配置
03/19 16:14, 1F

03/21 16:54, , 2F
Try std::string
03/21 16:54, 2F
文章代碼(AID): #19mUZQCr (C_and_CPP)
文章代碼(AID): #19mUZQCr (C_and_CPP)