線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3745
推到 Plurk!
推到 Facebook!

請教 堆疊溢位"stack overflow" 如何避免?

尚未結案
lo
初階會員


發表:8
回覆:69
積分:25
註冊:2003-01-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-20 10:44:55 IP:211.76.xxx.xxx 未訂閱
請教 先進: 我的form上祇有stringgrid及button 我在作數字的組合,程式中沒用到new 或指標 組合運算過程在stringgrid上顯示,完成後會作最後檢驗,如果不合要求,則重新運算到合乎要求為止. 我作一counter來統計組合次數.發現超過3600次??以上,就會出現"stackoverflow" 的警告. 有在站內搜查"堆疊溢位"還是無法理解 是不是每loop就清空堆疊暫存器可解決,如何清 或應該如何避免 謝謝 發表人 - lo 於 2004/09/20 16:16:29
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-20 18:17:41 IP:211.76.xxx.xxx 未訂閱
lo你好: 把程式中的"函式自我呼叫"(不太清楚中文如何表達),以for或while改寫。
lo
初階會員


發表:8
回覆:69
積分:25
註冊:2003-01-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-20 19:23:21 IP:211.76.xxx.xxx 未訂閱
pwipwi你好: 謝謝指點 我的程式中就如你建議的,都使用for while迴圈沒有呼叫函數,new 或指標 我不瞭解這溢位重何來又如何解除 因為在3600次以內完成,我用手動再執行都ok.即使前一次是在3500次時完成 這堆疊次數並不累計. PS:程式在執行時 用Button1->Click()執行 與Button1手動觸發會不同吗? 謝謝
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-20 21:23:04 IP:221.169.xxx.xxx 未訂閱
引言: pwipwi你好: 謝謝指點 我的程式中就如你建議的,都使用for while迴圈沒有呼叫函數,new 或指標 我不瞭解這溢位重何來又如何解除 因為在3600次以內完成,我用手動再執行都ok.即使前一次是在3500次時完成 這堆疊次數並不累計. PS:程式在執行時 用Button1->Click()執行 與Button1手動觸發會不同吗? 謝謝
lo:你方便Post部分程式上來大家研究研究!? Andy Chang
------
Andy Chang
lo
初階會員


發表:8
回覆:69
積分:25
註冊:2003-01-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-22 01:03:43 IP:211.74.xxx.xxx 未訂閱
Andy Chang 你好 我寫的是樂透全餐法組合 用了很多的判斷式.本想整理一下上傳請大家指教 發現自己基礎不好,寫得不好閱讀.暫先放棄這想法. 我現將counter設定3500次,組合不成就跳出改手動再組合. 謝謝
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-22 01:44:20 IP:211.76.xxx.xxx 未訂閱
如果你沒有用到函式的自我呼叫的話, 試著減少local variable的量,改用new來配置。 會讓stack overflow的原因,最多是因為function call太多(參數是放在stack裡的),其次是local variable太大(local variable也是放在stack裡) 如果再不行的話,命令linker把stack加大,在Project->Option->Linker裡的max stack size往上加,應該可以解決。
lo
初階會員


發表:8
回覆:69
積分:25
註冊:2003-01-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-09-22 10:14:44 IP:210.68.xxx.xxx 未訂閱
pwipwi你好: 依照指示我將max stack size改到最大值,程式執行已無問題 "local variable"方面我也會試試看 謝謝指導
系統時間:2024-03-29 13:42:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!