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

請教一個結構與指標的應用問題

尚未結案
hjlin
一般會員


發表:63
回覆:48
積分:22
註冊:2003-02-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-17 10:50:45 IP:220.136.xxx.xxx 未訂閱
以下為C語法的問題: typedef struct { int Front; int Rear; float Iterms[50]; } Queue; float *ptr; ptr=((Queue *)(0x807000)); //此兩行是我的目的,因為我想固定Queue的位置 . . . Queue AA; AA.Front=.... AA.Rear=... AA.Iterms[i]=... 請問是這麼寫的嗎?
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-17 15:17:54 IP:61.59.xxx.xxx 未訂閱
if you handle all the memory. then you can do it. if you write AP under some OS...then you can't do it. because. the 0x807000 don't belone you. ^_^
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-17 21:10:29 IP:211.76.xxx.xxx 未訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-17 23:48:09 IP:220.136.xxx.xxx 未訂閱
ptr=((Queue *) & knownQueueVariable; 這一行不是很瞭解,我可以寫成 ptr=((Queue *)(0x807000)); 所以 ptr->Front 的位置在 0x807000 ptr->Rear 的位置在 0x807001 ptr->Iterm[k] 的位置在 0x807002 ~ 0x807051 (k=1~50) 這樣解釋對嗎?謝謝指點
brook
資深會員


發表:57
回覆:323
積分:371
註冊:2002-07-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-18 20:06:42 IP:218.160.xxx.xxx 未訂閱
引言: 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的位置有什麼原因嗎?還是怕找不到?
系統時間:2024-06-29 5:11:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!