我必须使用以下签名为malloc
调用实现一个包装器:mymalloc
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?
}
现在,传递的指针是否需要再次进行类型转换,还是会隐式地进行类型转换?
我不明白这是如何工作的。