【求助】有關program與OS之間的問題 - PCZONE 討論區

返回   PCZONE 討論區 > ▲ -- 電 腦 軟 體 討 論 區 > -- HELP ME 電 腦 軟 硬 體 急 救 版


PCZONE 討論區



通知

-- HELP ME 電 腦 軟 硬 體 急 救 版 若您有簡單的電腦軟硬體或網路等各種疑難雜症想要請教高手,請在此發表。此區不分種類的問題皆可發表,以小問題為主,請電腦新手多多利用此一新的版版。

會員
【求助】有關program與OS之間的問題
有關program與OS之間的問題

請問各大大
我將p1.c的檔案copy成一份p2.c
而p1.c的內容是
main{
int a;
printf("%d,&a");
}
再將其p1.c和p2.c 各別compiler
然後在將其二個檔案分別在二個終端機裡同時執行
問題來了...為何這二個檔會用到同一個位址呢?
是因為程式碼區段是共用的嗎
麻煩各大大們為我做個詳細的解答..謝謝

回覆
會員

如果你的系統是 win32 的話,每當你執行一個程式,就是產生一個行程,系統就會為這個行程配置個 4GB 的虛擬記憶體空間,你的程式就使用這個虛擬的記憶體空間執行。由於是虛擬的,所以你所看到記憶體位址都是不是在記憶體中的實際位址,而是這個 4GB 空間中的位址;且你的變收 a 是在堆疊中產生,而不是使用 new 在執行期配置記憶體,所以兩個 console 看到的位址會相同,但應該不會互相影響。

(根據腦中殘缺不齊的"作業系統概論"印象想到的解釋,如果有錯請指正...)
回覆
會員

我的印相中 好像是他記憶體的位置是相對的
也就是說 不是絕對位置 而是相對於某個絕對位置
在堆疊區 可能相對於堆疊區的起點的長度都一樣
所以位置看起來相同

回覆







 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。