[問題] 關於大陣列宣告 in SystemC

看板C_and_CPP (C/C++)作者時間15年前 (2011/01/30 03:03), 編輯推噓1(106)
留言7則, 4人參與, 最新討論串1/1
我在systemC中需要用到上萬個訊號作模擬 所以我的訊號宣告成 sc_signal<int> signal[500000]; 雖然可以compile 但無法執行,在Linux下顯示"segment fault",在win下"程式關閉中" 我換new的方法也是相同 不知道是不是systemc kernel中單一sc_signal array有最大數目的限制 或是Compiler的限制等。 由於systemC裡面的物件都有一些機制 所以我換malloc方式一定不行 (我也實際試過) 我想問這個現象到底是哪個因素造成的?? 1.systemc lib 限制 2.compiler限制 3.其他 ??? OS(x64 x86) 有請板上的大大們指教了 !! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.169.88

01/30 04:46, , 1F
用 new 試是怎麼試的?
01/30 04:46, 1F

01/30 04:47, , 2F
sc_signal<int> *signals = new sc_signal<int>[size]?
01/30 04:47, 2F

01/30 05:22, , 3F
應該是stack size問題, 改用樓上heap作法應該ok,new寫在CTOR
01/30 05:22, 3F

01/30 05:55, , 4F
adxis大 沒錯 我也用這種試過
01/30 05:55, 4F

01/30 08:51, , 5F
有試過宣告成global variable然後給非零初值嗎?
01/30 08:51, 5F

01/30 08:52, , 6F
global variable理論上會被放在data segment而不是stack
01/30 08:52, 6F

01/30 08:52, , 7F
就不會有stack limit的問題 不過code size會變大
01/30 08:52, 7F
文章代碼(AID): #1DH6I7ND (C_and_CPP)
文章代碼(AID): #1DH6I7ND (C_and_CPP)