Ok this has been become sooo confusing to me. I just don\'t know what is wrong with this assignment:
void *pa; void *pb;
char *ptemp; char *ptemp2;
ptemp =
I just tried your code in a module called temp.c. I added a function called f1.
void *pa; void *pb;
char *ptemp; char *ptemp2;
f1()
{
ptemp = (char *)pa;
ptemp2 = (char *)pb;
}
On Linux I entered gcc -c temp.c, and this compiled with no errors or warnings.
On which OS are you trying this?
Actually, there must be something wrong with your compiler(or you haven't told the full story). It is perfectly legal to cast a void*
to char*
. Furthermore, the conversion is implicit in C (unlike C++), that is, the following should compile as well
char* pChar;
void* pVoid;
pChar = (char*)pVoid; //OK in both C and C++
pChar = pVoid; //OK in C, convertion is implicit