如何在C中将void指针转换为char指针
好吧,这对我来说太麻烦了。 我只是不知道这个任务有什么问题:
void *pa; void *pb; char *ptemp; char *ptemp2; ptemp = (char *)pa; ptemp2 = (char *)pb;
任何人都可以告诉我为什么我收到此错误:
错误:从’void *’到’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
我刚刚在名为temp.c的模块中尝试了您的代码。 我添加了一个名为f1的函数。
void *pa; void *pb; char *ptemp; char *ptemp2; f1() { ptemp = (char *)pa; ptemp2 = (char *)pb; }
在Linux上我输入了gcc -c temp.c,编译没有错误或警告。
您在尝试使用哪种操作系统?