Der folgende Code kompiliert in C, aber nicht in C++:Arbeiten in C, aber nicht in C++
int *ptr = 25; //why not in C++?
Fehler
prog.cpp: In function ‘int main()’:
prog.cpp:6:11: error: invalid conversion from ‘int’ to ‘int*’ [-fpermissive]
int *ptr = 25;
Aber dies stellt in C und C++:
int *ptr = 0; //compiles in both
Warum funktioniert die Zuweisung 0 gut und andere Zahlen funktioniert nicht?
Was genau ist der Fehler? –
Weil '0' in einem Zeigerkontext eine besondere Bedeutung hat. –
'0' ist eine Nullzeigerkonstante; '25' ist keine gültige Zeigerkonstante. Der erste sollte nicht ohne Warnungen in C. kompilieren. –