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

請問有關new出的是不是連續空間

答題得分者是:aftcast
l90425
初階會員


發表:95
回覆:152
積分:49
註冊:2008-04-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-25 09:00:49 IP:59.125.xxx.xxx 未訂閱
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)我不確定一定是連續!
------
-謝謝大大熱心的回覆!謝謝!
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-25 23:53:54 IP:122.120.xxx.xxx 訂閱
只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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-27 11:52:11 IP:59.125.xxx.xxx 未訂閱
嗯嗯!我知道了,感謝謝謝大大的說明!

===================引 用 aftcast 文 章===================
只new一次的話虛擬記憶體virtual memory 的空間排列通通都是連續的。new二次的話則虛擬記憶體可能是非連續或連續的空間。

但是,就實體的記憶體空間physical memory address來看,無論new幾次都可能連續或不連續。

所以,實務上在windows的系統上其實不太需要去管連續與否。以上的討論就是從windows31至今的windows為目標。

註: windows程式中關於記憶體的部份一般僅可去控制虛擬的部份,你無法接觸實體層。
------
-謝謝大大熱心的回覆!謝謝!
系統時間:2024-04-26 18:42:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!