Re: [問題] 關於動態配置記憶體的問題...

看板C_and_CPP作者 (有馬)時間15年前 (2010/02/26 02:33), 編輯推噓1(109)
留言10則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《alimaalimaaa (有馬)》之銘言: : ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) : ( 未必需要依照此格式,文章條理清楚即可 ) : 遇到的問題: (題意請描述清楚) : 使用動態配置後的指標, 在還沒有給定初值(例如全給0)的時候 : 在"Windows 工作管理員"中,該程式的"記憶體使用量"並沒有增加... : 而在指定初值後才增加, 是否表示在給定初值後才佔用記憶體? : 謝謝... : 希望得到的正確結果: : 程式跑出來的錯誤結果: : 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) : Dev-C++ : 有問題的code: (請善用置底文標色功能) : 補充說明: 原來"Windows 工作管理員"中可以看"虛擬記憶體大小" 如此該程式執行時所使用的記憶體, 應該還要加上此虛擬記憶體大小... 如果錯誤, 還請不吝指正, 謝謝... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.96.198.60

02/26 11:15, , 1F
應該不用加上吧? 虛擬記憶體跟實體記憶體不會有轉換的
02/26 11:15, 1F

02/26 11:16, , 2F
關係 而是 當虛擬記憶體指向的空間沒有配置實體空間時
02/26 11:16, 2F

02/26 11:16, , 3F
會去配置一塊實體給他 虛實是並存的 即使有了實 虛還是在
02/26 11:16, 3F

02/26 11:18, , 4F
詳細一點的說 有個struct紀錄虛->實的mapping
02/26 11:18, 4F

02/26 11:19, , 5F
memory management unit(hardware)會跟據這個去找實體
02/26 11:19, 5F

02/26 11:20, , 6F
找沒有就會產生中斷page fault 然後由系統的dispatcher
02/26 11:20, 6F

02/26 11:21, , 7F
(software) 去分配; 這個struct是machine dependent的
02/26 11:21, 7F

02/26 11:22, , 8F
然後那個虛->實 也可以故意沒有實 就可以做mmap這種功能
02/26 11:22, 8F

02/26 11:22, , 9F
有錯請指正 關於這些我只看過某本書的其中幾頁而已
02/26 11:22, 9F

02/26 11:27, , 10F
感謝buganini大的回答, 正努力解讀中...XD
02/26 11:27, 10F
文章代碼(AID): #1BXpBq8E (C_and_CPP)
文章代碼(AID): #1BXpBq8E (C_and_CPP)