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

請問一下zeromemory的問題

尚未結案
Schuamcher
一般會員


發表:30
回覆:42
積分:14
註冊:2004-11-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-26 20:32:50 IP:211.22.xxx.xxx 未訂閱
請問一下我有一個二維的structure陣列裡面且structure含有structure及float、AnsiString等格式,請問一下,我該如何使其二元陣列裡的初值為空白呢,我試過zeromemory,但會出現access vilation的警示,所以有其它辦法可作嗎,謝謝
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-26 21:27:13 IP:218.19.xxx.xxx 未訂閱
Schuamcher 您好: 不妨舉個實例來讓大家測試一下。
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-27 08:27:40 IP:211.75.xxx.xxx 未訂閱
你Struct中的AnsiString欄位是何種型態? 如果不是指標,那當然會錯 例如 錯誤做法 typedef struct tagStructA { int iValue; AnsiString Str; }StructA; StructA AAA; ::ZeroMemory(AAA,sizeof(StructA)); 正確作法 typedef struct tagStructB { int iValue; AnsiString* Str; }StructB; StructB BBB; ::ZeroMemory(BBB,sizeof(StructB));
Schuamcher
一般會員


發表:30
回覆:42
積分:14
註冊:2004-11-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-27 09:17:44 IP:211.22.xxx.xxx 未訂閱
謝謝jcjroc的指導,但是在AnssString 作成指標後, 
typedef struct tagStructB
{
int iValue;
AnsiString* Str;
}StructB;
StructB BBB;
::ZeroMemory(BBB,sizeof(StructB));    
作StructB.Str="DDD"的指令下會出現cannnot covert cahr to AnsiString 我如何處理這個程序
windblown
中階會員


發表:0
回覆:117
積分:98
註冊:2003-11-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-27 10:15:09 IP:61.229.xxx.xxx 未訂閱
應該是這樣吧? 
::ZeroMemory(&BBB,sizeof(StructB));
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-27 12:03:55 IP:211.75.xxx.xxx 未訂閱
ㄏㄏㄏ 沒注意寫錯了, typedef struct tagStructB { int iValue; AnsiString* Str; }StructB; StructB BBB; ::ZeroMemory(&BBB,sizeof(StructB)); BBB.Str=new AnsiString(); BBB.Str->operator =("DDD");
Schuamcher
一般會員


發表:30
回覆:42
積分:14
註冊:2004-11-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-27 16:31:13 IP:211.22.xxx.xxx 未訂閱
謝謝jcjroc的指導,可以請問一下為什麼要這麼做嗎 即可以再問如何取出BBB.Str的值 例如 AnsiString Test = BBB.Str "CCC"; 請問一下是那一個函數可以取出裡面的字串 謝謝
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-05-30 11:40:49 IP:211.75.xxx.xxx 未訂閱
其實你可以這樣用 (*BBB.Str)="DDD"; 或者 AnsiString Test=(*BBB.Str); 至於你問為何這樣用.... 冒昧問你一下,你是學生吧!!! 如果是,請你去問你的授課老師,"指標的運用" 如果不是,去買本C 的書K一下吧 如果你是指取出時呼叫哪個Funtion,你可以用Debug方式追蹤一下. 在輔以書本或老師的講解,你就會明瞭. 說穿了這只是C Class的operator與指標的運用與規則
Schuamcher
一般會員


發表:30
回覆:42
積分:14
註冊:2004-11-18

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-06-01 17:50:52 IP:211.22.xxx.xxx 未訂閱
謝謝jcjroc兄,我其實不是學生啦,我已經在工作了,只是因為學的是它的東西,所以程式基礎趨近0,所以有些簡單的東西,看了書也看不太懂,所以需要高手指點一下,謝謝
系統時間:2024-11-23 13:05:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!