009
07.08.2003, 12:43 Uhr
ao
(Operator)
|
Zitat: |
0xdeadbeef postete stdlib.h wird schon includet sein, sonst käme die Fehlermeldung auch, wenn er (char*) davor schreibt. Ich vermute, dass der Compiler auch keinen Fehler, sondern eine Warnung rausschmeißt - das muss er zwar eigentlich nicht, aber manche Compiler machen es trotzdem.
|
Nein, genau diese Warnung ("... makes pointer from integer without cast") wird durch den expliziten Cast unterdrückt. Und dass es eine Warnung und kein Fehler ist, hat BeS in seinem (bislang) letzten Posting geschrieben bzw. zitiert.
@BeS: Das Ganze soll nicht heißen, daß der (char *)-Cast dein Problem löst, im Gegenteil, er verschleiert es. Die Lösung ist, in deinem Programm den Prototyp von malloc bekanntzumachen, und zwar durch
In C gilt die Regel: Keine unnötigen expliziten Casts, und Casts von void* auf andere Zeigertypen und zurück sind immer unnötig, weil sie implizit vom Compiler gemacht werden.
In C++ ist es anders: Hier musst du explizit casten, weil der Compiler es implizit nicht macht.
ao |