unbenannt Geschrieben 23. März 2010 Geschrieben 23. März 2010 Hallo allerseits, oftmals liest man hier, der Rückgabewert von malloc solle nicht gecastet werden und dass der explizite Cast sogar Fehler überdecken könnte. Das unnötige Casten ist leider auch in von mir geschriebenen Quelltexten durchgehend zu finden. Welche Fehler können denn dadurch verdeckt werden? Die Suche im Netz brachte mich diesbezüglich bisher nicht weiter. Bislang ging ich immer davon aus, der Cast sei nur unnötig, würde aber nicht schaden. Mich würde nun aber interessieren, ob ich nicht potentielle Schwachstellen in meine Programme eingebaut und mir dadurch das Leben unnötig schwer gemacht habe.
Guybrush Threepwood Geschrieben 23. März 2010 Geschrieben 23. März 2010 Wikipedia erklärt das ganz gut: malloc - Wikipedia, the free encyclopedia
Bubble Geschrieben 23. März 2010 Geschrieben 23. März 2010 Es ist auch zu berücksichtigen, ob man mit C++ kompatibel sein will.
TDM Geschrieben 24. März 2010 Geschrieben 24. März 2010 Es ist auch zu berücksichtigen, ob man mit C++ kompatibel sein will. In C++ nimmt man kein malloc, sondern new. :beagolisc
Klotzkopp Geschrieben 24. März 2010 Geschrieben 24. März 2010 In C++ nimmt man kein malloc, sondern new. :beagoliscDann ist man aber nicht mehr kompatibel zu C Wenn man Code hat, der sowohl als C als auch als C++ compilierbar sein soll, dann muss man den Rückgabewert von malloc casten. Dann muss man aber auch noch etliche andere Dinge beachten.
TDM Geschrieben 24. März 2010 Geschrieben 24. März 2010 Dann ist man aber nicht mehr kompatibel zu C Wenn man Code hat, der sowohl als C als auch als C++ compilierbar sein soll, dann muss man den Rückgabewert von malloc casten. Dann muss man aber auch noch etliche andere Dinge beachten. Ach, jetzt verstanden. :upps Warum sollte man denn sowas machen? Ich mein, selbst bei Laufzeitmessungen sollte man die sprachspezifischen Funktionen, Operatoren o.Ä. verwenden. Das kann man wunderbar mit Präprozessordirektiven oder libs/DLLs machen. An sich sind es, trotz syntaktischer Ähnlichkeit, ja unterschiedliche Sprachen, deswegen versteh ich den Sinn dahinter nicht wirklich...
unbenannt Geschrieben 24. März 2010 Autor Geschrieben 24. März 2010 Vielen Dank für die Antworten. Ausgerechnet bei Wikipedia habe ich überhaupt nicht gesucht Im Code konnte ich zwar keine "gefährlichen" Stellen entdecken, aber da keine Kompatibilität zu C++ notwendig und dies auch nicht zu erwarten ist, werde ich das beizeiten mal bereinigen.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden