KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Here is a code - 1 int main(int argc, char *argv[]) 2 { 3 signed char S, *psc; 4 unsigned char U, *pusc; 5 char C, *pc; 6 7 C = S; 8 C = U; 9 10 pc = psc; 11 pc = pusc; 12 13 return 0; 14 } $ gcc test.cpp -o a test.cpp: In function ‘int main(int, char**)’: test.cpp:10:7: error: invalid conversion from ‘signed char*’ to ‘char*’ [-fpermissive] test.cpp:11:7: error: invalid conversion from ‘unsigned char*’ to ‘char*’ [-fpermissive] This is compiled on gcc version 4.6.3 on Ubuntu 12.10 on an Intel 32-bit machine. Considering that char type is unsigned char on x86. - If assignments on line 7 and 8 for non-pointer types are Ok, why errors are thrown for pointer types on lines 10 and 11 ? Also, should C = U succeeds without requiring a cast?
Tags (comma-separated)
Save Edits
Cancel