請問有關new出的是不是連續空間 |
答題得分者是:aftcast
|
l90425
初階會員 發表:95 回覆:152 積分:49 註冊:2008-04-03 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
只new一次的話虛擬記憶體virtual memory 的空間排列通通都是連續的。new二次的話則虛擬記憶體可能是非連續或連續的空間。
但是,就實體的記憶體空間physical memory address來看,無論new幾次都可能連續或不連續。 所以,實務上在windows的系統上其實不太需要去管連續與否。以上的討論就是從windows31至今的windows為目標。 註: windows程式中關於記憶體的部份一般僅可去控制虛擬的部份,你無法接觸實體層。 ===================引 用 l90425 文 章=================== int (*int_a)[3]=new int[n][3];-------------------(1) int (*int_b)[3]=(int(*)[3])new double[n*3];--(2) 請問像(1)new出n*3空間,而(2)也是new出n*3空間,那麼(1)和(2)new出的都是連續空間嗎? 我覺得(2)是連續,但是(1)我不確定一定是連續!
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
l90425
初階會員 發表:95 回覆:152 積分:49 註冊:2008-04-03 發送簡訊給我 |
嗯嗯!我知道了,感謝謝謝大大的說明!
===================引 用 aftcast 文 章=================== 只new一次的話虛擬記憶體virtual memory 的空間排列通通都是連續的。new二次的話則虛擬記憶體可能是非連續或連續的空間。 但是,就實體的記憶體空間physical memory address來看,無論new幾次都可能連續或不連續。 所以,實務上在windows的系統上其實不太需要去管連續與否。以上的討論就是從windows31至今的windows為目標。 註: windows程式中關於記憶體的部份一般僅可去控制虛擬的部份,你無法接觸實體層。
------
-謝謝大大熱心的回覆!謝謝! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |