[問題] C-malloc

看板C_and_CPP (C/C++)作者 (藍影)時間14年前 (2011/04/07 19:44), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/2 (看更多)
手邊有份案子,初始化時 malloc 動作非常頻繁, 寫了副函式覺得很奇怪,很怕會出包,請教下列動作是否正常 #define X 10 #define Y 20 void** Malloc2Dim(unsigned x, unsigned y) { unsigned i; void **ptr= (void**)malloc(sizeof(void*) * x); for(i=0; i!=x; ++i) ptr[i] = (void*)malloc(sizeof(void) * y); return ptr; } double **p = (double**)Malloc2Dim(X, Y); for(i=0; i!=X; ++i) memset(p[i], 0, sizeof(double)*Y); 問題1:sizeof(void*), sizeof(void), vc2008(.c) 是合法的, 但怎麼想都有點不對, 因不能保證 sizeof(void) = sizeof(double) 問題2 : 最下面那個 for loop, 有沒有辦法更快?直接用一個 memset 就過去了? 謝謝各位不吝指教! -- YouLoveMe() ? LetItBe() : LetMeFree(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.72.67

04/07 20:01, , 1F
晚點來測試一下 XD
04/07 20:01, 1F

04/07 20:19, , 2F
我看到不好的warnning了..sizeof(void) 傳回 0 .. XD
04/07 20:19, 2F

04/07 21:14, , 3F
我第一個想測試的就是這個 XDDD
04/07 21:14, 3F
文章代碼(AID): #1DdQElK_ (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
2
3
文章代碼(AID): #1DdQElK_ (C_and_CPP)