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

以下兩種宣告方式請問差在那裡呢~那一個比較好呢

尚未結案
dragonhippopdc
一般會員


發表:45
回覆:51
積分:19
註冊:2005-01-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-01 22:13:52 IP:218.175.xxx.xxx 未訂閱
請問以下兩種差在那裡呢~而那一種比較好呢 unsigned char *Buffer=new unsigned char[320*240] unsigned char Buffer[320*240]
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-01 23:44:52 IP:61.62.xxx.xxx 未訂閱
unsigned char *Buffer=new unsigned char[320*240] 會在 heap 配置空間。 unsigned char Buffer[320*240] 會在 stack 配置空間。 在 stack 比較快,但大小有限制。
palw
初階會員


發表:45
回覆:89
積分:26
註冊:2003-02-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-03 18:57:19 IP:220.229.xxx.xxx 未訂閱
dragonhippopdc 您好 : unsigned char *Buffer=new unsigned char[320*240] 這是動態產生一塊記憶體, _____ _____ | | | | | | |-----| |_____| |320* | |0x3c |-->|240 | |_____| |_____| Stack Heap Stack存指標,實際上是到Heap去要一段記憶體, 但是因為此方法是隨機的,怕被挖到的剛好是同一塊記憶體, 讀寫時就容易出錯 所以使用此方式一定要記得使用前清空 使用後delete掉變數 unsigned char Buffer[320*240] 而此種方式是直接在Stack抓一塊記憶體,不會有重複存取的問題 此塊記憶體在程式執行時會被kEEP起來,直到程式結束後才被RELEASE 所以若要求太大量的記憶體,可能會造成STACK OVERFLOW 所以兩種方法各有其好壞,端看您如何使用
系統時間:2024-07-03 0:00:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!