動態配置改為靜態配置 ( VS2008 MFC C++ ) |
答題得分者是:AndrewK
|
yensj
一般會員 發表:16 回覆:13 積分:5 註冊:2008-09-25 發送簡訊給我 |
想請問板上的前輩,小弟要如何把動態配置記憶體改為靜態配置呢?因為想縮短執行時間,所以想弄成靜態宣告。
嘗試過宣告 [code cpp] pVerTemplate = (FT_BYTE*)malloc(320*sizeof(void *)); [/code] complier會過,但是執行的時間並沒有明顯的縮短 不知道這樣的方法是否為靜態宣告? 插中斷點得知 iRecommendedVerFtrLen 大都為320, 若宣告成這樣 [code cpp] FT_BYTE* pVerTemplate [320] = {0}; [/code] 則會出現以下錯誤 錯誤 13 error C2664: 'MC_verifyFeaturesEx' : 無法將參數 5 從 'FT_BYTE *[320]' 轉換成 'FT_BYTE *' 錯誤 12 error C2664: 'FX_extractFeatures' : 無法將參數 6 從 'FT_BYTE *[320]' 轉換成 'FT_BYTE *' 以下為程式碼相關部分(最原始的動態宣告) [code cpp] FT_BYTE* pVerTemplate = NULL; int iRecommendedVerFtrLen = 0; FX_getFeaturesLen(FT_VER_FTR, &iRecommendedVerFtrLen, NULL); pVerTemplate = new FT_BYTE[iRecommendedVerFtrLen]; [/code] 其中 typedef unsigned char FT_BYTE; 編輯記錄
yensj 重新編輯於 2009-07-31 00:13:49, 註解 無‧
|
AndrewK
高階會員 發表:6 回覆:151 積分:161 註冊:2006-10-09 發送簡訊給我 |
|
yensj
一般會員 發表:16 回覆:13 積分:5 註冊:2008-09-25 發送簡訊給我 |
|
AndrewK
高階會員 發表:6 回覆:151 積分:161 註冊:2006-10-09 發送簡訊給我 |
宣告為靜態陣列對於速度上的處理是有限制的,
以你自行定義的 unsigned char ,我得到的資料是在可優化條件之外 你可以試試跑大一點迴圈,或使用 int 型別來比較,詳細測試看看 雖然指標對於靜態宣告,於資料中顯示一樣可優化,但此指標陣列, 之後一樣需有配置記憶體的動作 你亦可嘗試看看,是否有幫助
------
Just Do It ------------------------- 其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
編輯記錄
AndrewK 重新編輯於 2009-07-31 14:13:06, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |