我要實現所謂mymalloc
具有以下簽名的malloc
的包裝:void **作爲函數的參數有什麼用?
void mymalloc(int size, void ** ptr)
是必須的,從而沒有類型轉換將在主程序和正確的指針的所有權需要的void**
(無類型演員)仍然在main()
。
void mymalloc(int size, void ** ptr)
{
*ptr = malloc(size) ;
}
main()
{
int *x;
mymalloc(4,&x); // do we need to type-cast it again?
// How does the pointer mechanism work here?
}
現在,將指針傳遞需要被型鑄一遍,還是會得到隱式類型轉換?
我不明白這是如何工作的。
爲什麼不嘗試編譯它(記得啓用編譯器警告),並找出? –
@OliCharlesworth我想在這裏理解類型轉換機制(需要/不需要)。我會嘗試編譯它,雖然我沒有看到代碼的正確性,但是這個概念。 – Raulp