Pointer auf null testen hier sinnvoll?



  • cooky451 schrieb:

    Und dann wirf gleich noch mal einen Blick auf std::unique_ptr. Ein delete außerhalb der Standardbibliothek ist (zu 99.9999%?) ein Designfehler.

    Jetzt geht das wieder los ... Fanatiker.



  • Wo er Recht hat, hat er Recht. 😉



  • Im Umkehrschluss bedeutet das, alle Programme ohne Smartpointer haben einen Designfehler? Was ist mit jenen aus dem Jahr 2005 oder frueher? Ist C zu verwenden an sich auch ein Designfehler? Woher kommt der Wert 99.99...%, warum nicht 80%?



  • Den Umkehrschluss kannst Du nicht machen. Vielleicht braucht irgendein Programm ja auch überhaupt keine Zeiger, somit auch kein delete und somit auch keine Smartpointer. 😉

    Ich benutze die auch nicht ständig, auch unique_ptr nicht. Aber mein aktuelles Projekt lehrt mich, dass die Vorteile zu groß sind. Zu leicht vergisst man Mal ein delete oder macht aus Versehen eine unerwünschte Kopie (bzw. vergisst das Privatisieren von copy-ctor & operator=). Da kann mir jetzt jeder sagen "Dann programmierst Du halt schlecht.". Umso größer das Projekt wird, umso wahrscheinlicher ist es jedoch, dass es in einem Promille der Fälle passiert und oft sind damit verbundene Fehler schwer zu finden (oder niemand merkt gar, dass er ein delete vergaß und erzeugt Speicherlecks).



  • Eisflamme schrieb:

    Den Umkehrschluss kannst Du nicht machen. Vielleicht braucht irgendein Programm ja auch überhaupt keine Zeiger

    Ähemm.. bitte richtig formulieren 🙂



  • Bitte sagen, was falsch formuliert ist.

    Und hast Du ein Verständnisproblem oder ist die Aussage nicht vielmehr komplett klar, sodass es keinen Grund dazu gibt darauf rumzuhacken?



  • Ich glaube es ist Zeit, jegliche 99%-Glaubenskriege und Formulierungs-Haarspaltereien abzubrechen. Wenn ihr Spaß dran habt, macht per Mail weiter. Bitte back to topic 🙂



  • ...rumzuhacken

    ... Hacker...
    🕶



  • Eisflamme schrieb:

    Bitte sagen, was falsch formuliert ist.

    Und hast Du ein Verständnisproblem oder ist die Aussage nicht vielmehr komplett klar, sodass es keinen Grund dazu gibt darauf rumzuhacken?

    Also,

    ich habe ich Programmen mit Ogre Unmassen von Zeigern. Und kein einziges delete . Weil Zeiger und selbstständiges Verwalten eben nicht mit einander verknüpft sind, dachte das wäre mehr oder weniger offensichtlich 😕 🙂



  • Themenbezogen präzisiere ich Mal meine Aussage, weil meine Formulierung offensichtlich nicht verstanden wird. Ich hoffe, das ist im korrekten Rahmen.

    Ich meinte mit meiner Aussage, dass es auch Programme ohne Zeiger (ohne Notwendigkeit für Zeiger, weil alles über den Stack oder Container verwaltet wird) geben kann. Für diesen Fall wäre es also gar nicht notwendig sich die Frage zu stellen, ob man einen Smartpointer oder einen rohen Zeiger nehmen muss. Der Umkehrschluss, dass "delete bedeutet immer Designfehler" daher immer bedeutet "ein Programm ohne Smartpointer ist automatisch misdesigned" ist also nicht zwingend.

    Übrigens glaube ich, dass wir seit Seite 1 einen Glaubenskrieg haben, denn OPs Frage wurde von cooky bereits beantwortet und Enumerator hat sich seitdem nicht mehr gemeldet, also es vermutlich verstanden.



  • Eisflamme schrieb:

    Übrigens glaube ich, dass wir seit Seite 1 einen Glaubenskrieg haben, denn OPs Frage wurde von cooky bereits beantwortet und Enumerator hat sich seitdem nicht mehr gemeldet, also es vermutlich verstanden.

    Dann kann ich ja zumachen 🙂

    Da evtl. noch Diskussionsbedarf besteht, habe ich den Thread auf Wunsch eines Forenmembers wieder geöffnet. Aber: bitte nur zum originalen Topic posten.


Anmelden zum Antworten