請教一個結構與指標的應用問題 |
尚未結案
|
hjlin
一般會員 ![]() ![]() 發表:63 回覆:48 積分:22 註冊:2003-02-11 發送簡訊給我 |
|
暗黑破壞神
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
richtop
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
hjlin 您好: 指標變數的功能是讓您可以指向另一個同型態變數的位址,不過這個變數應該是存在的。如您所說的指定數值方式,除非該數值確是某個該型態變數的位址,不過似乎不可能在程式設計階段得知。
引言: 以下為C語法的問題: typedef struct { int Front; int Rear; float Iterms[50]; } Queue; Queue *ptr; ptr=((Queue *) & knownQueueVariable; //(0x807000)); //此兩行是我的目的,因為我想固定Queue的位置 變數的引用: ptr->Front.... ptr->Rear .... ptr->Items[k]... . . . Queue AA; AA.Front=.... AA.Rear=... AA.Iterms[i]=... 請問是這麼寫的嗎?RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
hjlin
一般會員 ![]() ![]() 發表:63 回覆:48 積分:22 註冊:2003-02-11 發送簡訊給我 |
|
brook
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
引言: ptr=((Queue *) & knownQueueVariable; 這一行不是很瞭解,我可以寫成 ptr=((Queue *)(0x807000)); 所以 ptr->Front 的位置在 0x807000 ptr->Rear 的位置在 0x807001 ptr->Iterm[k] 的位置在 0x807002 ~ 0x807051 (k=1~50) 這樣解釋對嗎?謝謝指點1.ptr=((Queue *)(0x807000)); 在dos的環境下,大致應該沒什麼問題,因為大部份的時間,只有你一個程式在跑而己,錯誤的機會比較少.要不然就是寫趨動程式,才會用如此的寫法.而現在的windows環境,一開機就十幾個程式在跑,沒有限制每個程式活動範圍空間,一定會出問題.就像圓山飯店的807號房己經有人住了,而你又執意要去住,一定會出問題,或許被趕出來,或許多個小baby,也或許什麼事都沒發生... 2.ptr=((Queue *) & knownQueueVariable; 由此看來,你住圓山飯店,一定不是用你自己的名字,所以住房時,才會多註明是Queue住進來. 假如你直接用Queue訂房 Queue knownQueueVariable; 要住時直接用 ptr = &knownQueueVariable; 即可. 3.而ptr就像代理人,假如你把事情都交給代理人做,他可以幫你掃地,洗衣... 所有事都可以,當然假如沒有管理好代理人,你被賣掉也是很有可能的. 4.ptr=((Queue *)(0x807000)); //此兩行是我的目的,因為我想固定Queue的位置 不知你固定Queue的位置有什麼原因嗎?還是怕找不到? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |