如何在C中将void指针转换为char指针

Jim*_*mmy 15 c pointers void-pointers

好吧,这对我来说太麻烦了.我只是不知道这个任务有什么问题:

void *pa; void *pb;
char *ptemp; char *ptemp2; 

ptemp = (char *)pa;
ptemp2 = (char *)pb;
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么我收到此错误:

错误:从'void*'无效转换为'char*'

Arm*_*yan 24

实际上,你的编译器肯定有问题(或者你没有讲完整的故事).这是完全合法的投出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
Run Code Online (Sandbox Code Playgroud)