可能重複:
newbie questions about malloc and sizeof使用的sizeof()的malloc分配內存
我想讀的字符串到一個程序。當我注意到弦有時被損壞,我嘗試下面的代碼:
void *mallocated = malloc(100);
printf("sizeof(mallocated) = %d\n", sizeof(mallocated));
根據我的方案,mallocated
尺寸爲8
,即使我被分配100個字節它。因此,每當我嘗試存儲超過8個字節的字符串時,第8個字節後的所有內容都會消失。爲什麼會發生這種情況,我該如何預防它?
sizeof(mallocated)會給你void *的大小,在你的64位系統上是8個字節。你如何使用strcpy爲該變量分配一個字符串? – tur1ng
參見:http://stackoverflow.com/questions/1533519/newbie-questions-about-malloc-and-sizeof – Shog9
你的結論也是錯誤的,任何寫在第8個「字節」(不是位)之後的東西都不會隨機消失有時。 – Blindy