好吧,这已经变得让我感到困惑。我只是不知道什么是错的这个任务:你如何将空指针转换为C中的字符指针?
void *pa; void *pb;
char *ptemp; char *ptemp2;
ptemp = (char *)pa;
ptemp2 = (char *)pb;
谁能告诉我为什么我收到此错误:
error: invalid conversion from ‘void*’ to ‘char*’
好吧,这已经变得让我感到困惑。我只是不知道什么是错的这个任务:你如何将空指针转换为C中的字符指针?
void *pa; void *pb;
char *ptemp; char *ptemp2;
ptemp = (char *)pa;
ptemp2 = (char *)pb;
谁能告诉我为什么我收到此错误:
error: invalid conversion from ‘void*’ to ‘char*’
实际上,必须有什么问题你的编译器(或者你还没有讲完整个故事)。将void*
改为char*
是完全合法的。此外,转换为隐含在C(不像C++),也就是,以下应编译以及
char* pChar;
void* pVoid;
pChar = (char*)pVoid; //OK in both C and C++
pChar = pVoid; //OK in C, convertion is implicit
我正在使用g ++编译器,并且我已经编译了windows visuall C++上的代码,但没有问题,但是使用g ++我得到这个错误 – Jimmy
此代码不会产生任何错误(假设正确的上下文)。这些转换没有任何无效。像这样的错误通常是在C++中为'ptemp = pa'赋值而产生的(即没有强制转换,C++编译器)。您声称正在使用C编译器,并且您在那里有明确的转换。你的情况不会有这样的错误。请发布真实的代码。 – AnT
什么编译器?它是C编译器,而不是C++编译器?现在,你拥有的是合法的C,并且在C99标准模式下没有任何问题将通过'gcc'。 –
现在,这是一个奇怪的错误消息... –