[問題] C-malloc
手邊有份案子,初始化時 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
04/07 20:01, 1F
→
04/07 20:19, , 2F
04/07 20:19, 2F
推
04/07 21:14, , 3F
04/07 21:14, 3F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章