全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2242
推到 Plurk!
推到 Facebook!

return時發生 Access violation at address...

答題得分者是:herbert2
sussy
一般會員


發表:2
回覆:7
積分:1
註冊:2010-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-10-18 14:57:38 IP:203.64.xxx.xxx 訂閱
 各位先進好,

小弟在宣告個一 *TStringList function

但 在return 回去,時會產生 Access violation at address at 20F04D5B in module "BORLNDMM.DLL". Read of address 00000000.

在主function 也是用TStringList接的,此情形不一定都會產生,有些就可以順利傳回去,有些則否。

請各位先進解惑。謝謝

編輯記錄
sussy 重新編輯於 2011-10-24 06:57:08, 註解 無‧
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-10-18 21:52:06 IP:202.39.xxx.xxx 訂閱
請使用『傳址』的方式.
在主 Function 宣告 TStringList *YourTstringList = new TStringList();
然後執行 YourFunction(YourTStringList),
去呼叫 void __fastcall YourFunction(TStringList *YourTStringList);

Access violation 通常肇因於『存取不存在的物件』,沒有 Code, 應無人能幫你.
sussy
一般會員


發表:2
回覆:7
積分:1
註冊:2010-10-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-10-19 21:50:17 IP:203.64.xxx.xxx 訂閱
herbert2您好,

我在之後把所有的程式全部寫在主程式裡,也就是一條龍寫下來,所以沒有return問題。

結果反而是在原本寫在副程式裡的code,單部執行在現在主程式裡的迴圈跑完"}"位置出現同樣問題。


herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-10-20 09:37:45 IP:202.39.xxx.xxx 訂閱
再強調一次:
Access violation 通常肇因於『存取不存在的物件』(已被 delete 了, 或存取到陣列之外了),
『沒有 Code』, 應『無人能幫你』.

sussy
一般會員


發表:2
回覆:7
積分:1
註冊:2010-10-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-10-24 20:55:23 IP:203.64.xxx.xxx 訂閱

===================引 用 herbert2 文 章===================
再強調一次:
Access violation 通常肇因於『存取不存在的物件』(已被 delete 了, 或存取到陣列之外了),
『沒有 Code』, 應『無人能幫你』.


謝謝您的提醒~問題已解決了!
是動態陣列在宣告時,呼叫到沒宣告的位置!
謝謝!
系統時間:2024-04-26 15:55:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!