記憶體址位問題 |
尚未結案
|
syao
初階會員 發表:66 回覆:63 積分:25 註冊:2005-02-02 發送簡訊給我 |
#include #include0022FF70 //name 指標區塊是存放 hello的'h' (00403000)起始位址嗎? 0022FF74 //name 1 指標區塊是存放 world的'w' (00403006)起始位址嗎? 1.請問指標陣列是字串直接存入記憶體而不是陣列所有它是靠name指標指向字串起始位址嗎??所以name位址跟字串位址不是連續 2.陣列指標是指向陣列起始位址,字串是存入陣列內而不是直接存入記憶體嗎?? 以上是我自己想法~~@@~~如果不對請指教 謝謝 發表人 - syao 於 2005/07/29 21:39:26 發表人 - syao 於 2005/07/29 21:40:22 |
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
1.0022FF70 //name 指標區塊是存放 hello的'h' (00403000)起始位址嗎?
ans:是,更正確的說應該是*name[0],這個第一個指標陣列元素的指標所指向的位址。 2.0022FF74 //name+1 指標區塊是存放 world的'w' (00403006)起始位址嗎?
ans:應該說是name指標型態大小的所位移的下一位址 3.請問指標陣列是字串直接存入記憶體而不是陣列所有它是靠name指標指向字串起始位址嗎??所以name位址跟字串位址不是連續
ans:不太好意思,不懂你的意思!
|
syao
初階會員 發表:66 回覆:63 積分:25 註冊:2005-02-02 發送簡訊給我 |
Stallion 謝謝解答 3.請問指標陣列是字串直接存入記憶體而不是陣列所有它是靠name指標指向字串起始位址嗎??所以name位址跟字串位址不連續的記憶體位址 "連續記憶體位址" char name[2][10]={"hello","world"}; & name[0][0] ~name[0][9] = 0022FF50 ~0022FF59 "hello"
& name[1][0] ~name[1][9] = 0022FF5A0 ~0022FF63 "world" 它們記憶體位址都是連續,是因為把字串存放在陣列內?? "不連續記憶體位址" char *name[]={"hello","world"}; name = 0022FF70 //這兩個應該是指標指向"hello"的'h'位址00403000
name 1 = 0022FF74 //這兩個應該是指標指向"world"的'w'位址00403006 但是跟name位址的0022FF70接不上0022FF71..... 所以我想問的是'h'位址00403000是直接把字串存入記憶體再經由編譯器把字串'h'起始位址給陣列 name再去指向'h'位址嗎?? 謝謝
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |