Wird (STL-) Klasse innerhalb einer struct bei malloc auch instanziert ?



  • ?
    Also ich benutze momentan die 2. Variante, mit malloc() und free().
    Wieso eigtl. den Konstruktor von tStruktur ? tStruktur hat doch gar keinen oder hab ich jetzt was falsch verstanden...



  • Xzibit schrieb:

    Ich bin halt noch Old-skool und benutze immer noch malloc haha.

    malloc ist nicht Oldschool, malloc ist C und in C++ quasi immer falsch. Du solltest unbedingt immer new/new[] und delete/delete[] verwenden. Das ist auch keine Frage der persönlichen Präferenz. malloc ist falsch.

    _Xzibit schrieb:

    Wieso eigtl. den Konstruktor von tStruktur ? tStruktur hat doch gar keinen oder hab ich jetzt was falsch verstanden...

    Wird automatisch generiert wenn keiner da ist.
    Du solltest dringend ein Anfängertutorial lesen.



  • malloc ist falsch.

    Ja, das weiß ich doch. Ich programmiere ja schließlich schon so einige Jahre.
    Jedoch macht es bei mir keinen Unterschied mehr, ob malloc oder new.
    Läuft genauso duch den COmpiler. Sachlich gesehen ist malloc() hier falsch, da geb' ich dir ja recht. Is ja gut 😉


  • Mod

    _Xzibit schrieb:

    Läuft genauso duch den COmpiler.

    Das ist wohl das sinnloseste Argument für falsch oder richtig in der Programmierung überhaupt.



  • Das ist wohl das sinnloseste Argument für falsch oder richtig in der Programmierung überhaupt.

    Diskussion ist für mich hier zuende.



  • _Xzibit schrieb:

    Das ist wohl das sinnloseste Argument für falsch oder richtig in der Programmierung überhaupt.

    Diskussion ist für mich hier zuende.

    Super Einstellung! 👍

    Das erklärt auch, warum du mit mehreren Jahren Programmierung immernoch solchen C++ Code schreibst.



  • Zitat:
    Das ist wohl das sinnloseste Argument für falsch oder richtig in der Programmierung überhaupt.

    Diskussion ist für mich hier zuende.

    Super Einstellung! 👍

    Das erklärt auch, warum du mit mehreren Jahren Programmierung immernoch solchen C++ Code schreibst.

    Ja, mei 😉
    Ich finde eben den kleinen Fehler am Rande auch nicht soo schlimm, daher wollte ich jetzt auch nicht auf eine langwierige Diskussion eingehen... Aber ich werd's mir fürs nächste Mal merken, ich versprech's ! 🙂



  • _Xzibit schrieb:

    Das ist wohl das sinnloseste Argument für falsch oder richtig in der Programmierung überhaupt.

    Diskussion ist für mich hier zuende.

    ^^

    int *p;
    *p = 10; // BUMM!!!
    int x=10;
    delete &x; // BUMM!!!
    

    Kompiliert wunderbar, geht aber zur Laufzeit sowas von schief! Deine Reaktion ist deshalb wirklich nicht verständlich.



  • _Xzibit schrieb:

    Ich finde eben den kleinen Fehler am Rande auch nicht soo schlimm

    Statt new malloc zu verwenden ist kein kleiner Fehler am Rande, sondern löst ein ganz anderes Verhalten aus. Malloc ruft keinen Konstruktor auf, new hingegen schon. Das ist ein ganz gewaltiger Unterschied.



  • new und delete zu verwenden ist oft schon schlimm genug. Besonders an Orten, wo automatische Variablen die massiv bessere Wahl wären.


Anmelden zum Antworten