作者tropical72 (藍影)
看板C_and_CPP
標題[問題] C-malloc
時間Thu Apr 7 19:44:43 2011
手邊有份案子,初始化時 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