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

為什麽要分配緩沖區?

答題得分者是:daldal
mp394681143
一般會員


發表:64
回覆:40
積分:20
註冊:2009-10-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-01-19 22:05:19 IP:61.136.xxx.xxx 訂閱
只是要顯示一個對話框,為何要分配一個緩沖區呢?宣告一個變數,其實就是在聲明一個緩衝區嗎?下面這段代碼只是顯示系統文件的目錄,為何要聲明一個長度為255字符數組變量?,來裝這個內容?普通變量不行嗎?

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var
huanc:array[0..256]of char;
begin
getsystemdirectory(huanc,sizeof(huanc));
showmessage(huanc);
end;

[/code]
編輯記錄
mp394681143 重新編輯於 2010-01-19 22:09:23, 註解 無‧
daldal
高階會員


發表:6
回覆:102
積分:226
註冊:2007-06-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-01-19 23:30:40 IP:61.219.xxx.xxx 未訂閱
分配一個 char array 是為了給函式寫入結果值

以你所舉的例子
使用 getsystemdirectory
函式向系統詢問 %Windows%\\system 的路徑
函式會利用你所傳進來的記憶體位址與大小,將結果寫入 array
最後才利用 ShowMessage 輸出 array

至於 array 大小當然可以自己決定囉,
不過太大浪費、太小也可能會無法接受長路徑寫入


PS: 區域好像移到 delphi 比較好?!
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-01-20 07:52:12 IP:59.125.xxx.xxx 訂閱
誰說不行?你驗證過嗎?還是說人說你信?自己試試吧!

===================引 用 mp394681143 文 章===================
只是要顯示一個對話框,為何要分配一個緩沖區呢?宣告一個變數,其實就是在聲明一個緩衝區嗎?下面這段代碼只是顯示系統文件的目錄,為何要聲明一個長度為255字符數組變量?,來裝這個內容?普通變量不行嗎?

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var
huanc:array[0..256]of char;
begin
getsystemdirectory(huanc,sizeof(huanc));
showmessage(huanc);
end;

[/code]
mp394681143
一般會員


發表:64
回覆:40
積分:20
註冊:2009-10-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-01-20 21:30:00 IP:61.136.xxx.xxx 訂閱
謝謝兩位大大,小弟新手,我有試地啊,我只是想知道它的工作原理,完全不了解程式是如何運作,那怎麽寫出好的軟體呢?
系統時間:2024-04-25 20:07:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!