[C++] Pointer Problem (erledigt)

Übersicht Andere Programmiersprachen Allgemein

Neue Antwort erstellen

Jan_

Ehemaliger Admin

Betreff: [C++] Pointer Problem (erledigt)

BeitragMi, Feb 11, 2015 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Aloa, eigentlich eine ganz normale sache, aber es will irgendwie nicht ich bekomme ein Sigenv bei Code: [AUSKLAPPEN]
ttupellist* tupel = new ttupellist;

Also einen Speicherzugriffsfehler.
Habe ne weile kein C++ gemacht und sehe nicht, was falsch ist, kann mich mal jemand mit der Nase drauf tippen?

Code: [AUSKLAPPEN]

ttupellist *txml::add_tuppel(string name)
{
    ttupellist* tupel = new ttupellist;
    tupel->name =name;
    tupel->next =NULL;
    if (tuppels == NULL)
    {
        tuppels = tupel;
    }else{
        ttupellist* laeufer=tuppels;
        while (laeufer->next!=NULL)
        {
            laeufer = laeufer->next;
        }
        laeufer->next = tupel;
    }
    return tupel;
};

Code: [AUSKLAPPEN]
class ttupellist{
    public:
    ttupellist *next;
    ttupellist *childs;
    string name;
    ttupelinhaltliste *inhaltlist;
    tattributliste *attributelist;

    void add_inhalt(string inhalt);
    void add_attribut(string name,string inhalt);
    void test_print();
};


wenn ich die Zeile in main() habe, kommt kein Fahler ...

Hat sich erledigt, fehlermeldung kam nur zum falschen zeitpunkt. der Fehler lag im Constructor.
  • Zuletzt bearbeitet von Jan_ am Do, Feb 12, 2015 10:06, insgesamt einmal bearbeitet

Thunder

BeitragMi, Feb 11, 2015 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich mir zwei Bemerkungen erlauben darf...

Eine Bemerkung: Du arbeitest ziemlich viel mit Pointern. Eventuell ist es ratsam, statt der eigenen Tupeltypen eine Möglichkeit zu suchen das ganze mit STL-Datentypen zu implementieren. vector<>
Vorteile: Bessere Performance, weniger Fehler, einfachere Verständlichkeit.

Andere Bemerkung: in add_inhalt und add_attribut übergibst du die strings by value.
Siehe: http://stackoverflow.com/quest...-reference (aber niemals Option 4 - außer du kennst dich mit rvalue-Referenzen aus)
In den meisten Fällen, wo Objekte übergeben werden ist const& das Richtige (das ist der default advice). Kommt aber natürlich darauf an, was deine Methode macht.

Hier ist die Empfehlung für Parameter vom Standards-Komittee:
user posted image

entnommen aus der Präsentation von Herb Sutter, CppCon 2014:
Essentials of Modern C++ Style ... 1. Link

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group