unbenannt Geschrieben 23. März 2010 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 23. März 2010 Teilen Geschrieben 23. März 2010 Wikipedia erklärt das ganz gut: malloc - Wikipedia, the free encyclopedia Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 23. März 2010 Teilen Geschrieben 23. März 2010 Es ist auch zu berücksichtigen, ob man mit C++ kompatibel sein will. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 24. März 2010 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 24. März 2010 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 24. März 2010 Teilen 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
unbenannt Geschrieben 24. März 2010 Autor Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.