在C中,void
指针被隐式地转换为另一种类型。C与C++中void *的转换
请参见下面的程序:
int main()
{
void *p;
int* ptr,i=5;
p=&i;
ptr=p; <---------------------------
return 0;
}
当C环境下运行的程序compiles successfully。
但是,如果在同一个程序为C下运行++环境下,我得到了下面error:
prog.cpp: In function ‘int main()’:
prog.cpp:8: error: invalid conversion from ‘void*’ to ‘int*’
这意味着,在C++中,我们需要明确的典型案例一void
指针。
那么,为什么new
运算符的返回类型是void *?如何将其转换为所需的类型?
我认为你可以指示C编译器对于隐式强制转换更迂腐。 – maba 2012-08-08 13:25:37