看板 C_and_CPP 關於我們 聯絡資訊
手邊有份案子,初始化時 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
ericinttu:晚點來測試一下 XD 04/07 20:01
tropical72:我看到不好的warnning了..sizeof(void) 傳回 0 .. XD 04/07 20:19
ericinttu:我第一個想測試的就是這個 XDDD 04/07 21:14