當動態分配char
S,我一直在做這樣的:動態分配'char'冗餘時是否使用'sizeof(char)'?
char *pCh = malloc(NUM_CHARS * sizeof(char));
我最近被告知,但是,使用sizeof(char)
是定義多餘的,不必要的,因爲,」的大小char
是一個字節,」所以我應該/能寫上一行:
char *pCh = malloc(NUM_CHARS);
我的理解是一個字符的大小取決於被在目標計算機上使用的本地字符集。例如,如果本地字符集是ASCII,則char
是一個字節(8位),並且如果本地字符集是UNICODE,那麼char
將需要更多字節(> 8位)。
爲了提供最大的便攜性,是否有必要使用sizeof(char)
,因爲malloc
只是簡單地分配8位字節?我誤解了malloc
和sizeof(char)
?
+1忽略了不需要的'(char *)'在右邊投上 – Bathsheba
我會'char * pCh = malloc(NUM_CHARS * sizeof(* pCh));'並轉向其他問題。 – alk
s/right/left /,right @Bathsheba? – unwind