回答
調用的返回類型malloc
被明確地轉換爲void
指針:這是等價的。這是多餘的,因爲它已經返回void*
,但是
可能是
可能存在以澄清開發者的意圖(或者他只是搞砸了)。
「可能是爲了澄清開發者的意圖」如果是這樣的話,那麼這對作者來說就是一個很大的瑕疵。演員有放棄類型系統的效果。 Sane程序員儘可能的努力嘗試使用強制轉換。添加虛假無用的演員陣容是無法相信的。 – 2012-04-14 20:01:42
@DavidHeffernan真的,好點。我總是試圖給出疑問的好處,但只是編輯了我的回答。 – 2012-04-14 20:03:41
在這種特殊情況下,它什麼都不做。然而,由於C++是比C更嚴格的關於類型安全,你通常需要轉換的malloc
返回:
void* x = malloc(100); //OK in C/C++
int* y = malloc(100); //OK in C, error in C++
int* z = (int*)malloc(100); //OK in C/C++, not recommended for C
然而,由於您使用C++,我不能不告訴你,你應該使用new
代替。
感謝您的分手:D – jwbensley 2012-04-14 20:51:39
- 1. void *(* void)(void *)代表什麼?
- 2. 「void function()」和「void * function()」有什麼區別?
- 3. void *和void **有什麼區別?
- 4. (void **)&x和(void *)x有什麼區別?
- 5. void(int)和void(*)(int)有什麼區別?
- 6. 爲什麼malloc失敗?
- 7. 從「typedef void VOID」中內置「void」和「VOID」有什麼區別?
- 8. 爲什麼IAR拋出void *
- 9. void casting有什麼作用?
- 10. 在整數指針前面寫入(void *)的要點是什麼?
- 11. 爲什麼在malloc代碼運行之前分配內存?
- 12. 爲什麼const_missing沒有在Object前面加上前綴?
- 13. 爲什麼在方法之前添加void?
- 14. 爲什麼malloc(1)給出多個頁面大小?
- 15. 爲什麼malloc總是返回NULL
- 16. 爲什麼必須使用malloc?
- 17. Malloc in C爲什麼要使用它
- 18. 爲什麼使用malloc結構?
- 19. 爲什麼malloc不能使用strcpy?
- 20. 爲什麼我們需要calloc(或malloc)?
- 21. 瞭解爲什麼我需要malloc
- 22. 爲什麼malloc在這裏返回NULL?
- 23. Malloc不返回記憶,爲什麼?
- 24. 爲什麼malloc覆蓋RSP和RSP + 8?
- 25. 爲什麼malloc不無鑄造工作?
- 26. malloc和tc_malloc有什麼區別?
- 27. calloc和malloc跟memset有什麼區別?
- 28. malloc()和realloc()有什麼區別?
- 29. malloc和數組有什麼區別
- 30. malloc()和虛函數有什麼問題?
這意味着作者不知道'malloc'返回類型爲'void *'的指針 – 2012-04-14 19:59:15
這是* cast *,而不是前綴,btw。 – 2012-04-14 20:16:49