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

副函數 Stack Overflow問題

答題得分者是:Royce520
bio
一般會員


發表:42
回覆:36
積分:20
註冊:2003-03-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-23 17:33:31 IP:140.135.xxx.xxx 未訂閱
大家好 請問大家一個問題 以下是程式內容 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void mask() { int x[640][480]; } //----------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { mask(); } //--------------------------------------------------------------------------- 但是complier後出現 project.exe raised exception class EStackOverflow with message 'Stack overflow' 我猜是陣列大小問題 不知道副函數是否無法令到這麼大 因為480改成400就可 而又不想將X[][]另成全域變數 所以不知道大家可否解決我的疑問呢???? 謝謝 發表人 - taishyang 於 2003/04/23 20:25:21
brant
一般會員


發表:1
回覆:64
積分:23
註冊:2003-04-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-23 18:25:06 IP:211.21.xxx.xxx 未訂閱
bio 您好, local 變數過大,可改用動態配置的方式解決。 請參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28649 發表人 - brant 於 2003/04/23 18:26:31
Royce520
高階會員


發表:18
回覆:157
積分:100
註冊:2002-09-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-23 20:05:19 IP:61.59.xxx.xxx 未訂閱
bio 你好,   的確 這是 mask 函數裡面 局部變數所佔用的記憶體超過 BCB 所限定的 stack 大小, 也就是 int x[640][480]; 這行指令所需記憶體為 4*640*480 , 而 BCB 預設的 stack 大小為 16*100000,  理論上呢  沒有超過, 不過確會造成問題, 解法有好幾種: 第一, 如 brant 所言 第二, 加大 BCB 預設的 stack 大小. (在 Project->Options->[Linker tab]下的 PE file options 之 max stack size) 第三, 宣告成 static int x[640][480]; 也可以 這樣不算全域變數 *真實的事物最美, 簡單的道理最好, 我能體會的 太少*
------
不要忘記呼吸,不要忘記編程! ∩__∩
bio
一般會員


發表:42
回覆:36
積分:20
註冊:2003-03-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-23 20:35:44 IP:140.135.xxx.xxx 未訂閱
Royce520 您好 謝謝您的方法,還有brant的方法 這三種方法都試過,基本上會採取第二和第三種方法 因為我需要看矩陣內的資訊 所以第一種方法我不便看矩陣內資訊是什麼 但基於給分只能給一個人 所以囉... 但還是謝謝兩位先進們
brant
一般會員


發表:1
回覆:64
積分:23
註冊:2003-04-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-24 09:51:05 IP:211.21.xxx.xxx 未訂閱
引言: Royce520 您好 謝謝您的方法,還有brant的方法 這三種方法都試過,基本上會採取第二和第三種方法 因為我需要看矩陣內的資訊 所以第一種方法我不便看矩陣內資訊是什麼 但基於給分只能給一個人 所以囉... 但還是謝謝兩位先進們 < face="Verdana, Arial, Helvetica"> 問題有合乎需求的解就好 I don't care about the point.
系統時間:2024-05-05 16:51:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!