Hallo Leute, ich hab ein mir unerklärliches Problem in einem C++ Programm. Wahrscheinlich ist es, wie so oft, ein trivialer Fehler auf den ich aber einfach nicht komm... ☹ Vielleicht kann mir einer von euch helfen..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #include <iostream> #include <vector> #include <random> using namespace std; #define max 9999 #define min -9999 struct element { int val; int height = 0; vector<element*> next; }; class skipliste{ public: vector<element> skiplist; element first; element last; skipliste(); void print(); void del(int element); }; skipliste::skipliste(){ element first; first.val=min; element last; last.val=max; element *auf_last; auf_last = &last; first.next.push_back(auf_last); skiplist.push_back(first); skiplist.push_back(last); cout<<first.next[0]->val<<endl; } void skipliste::print() { cout<<first.next[0]->val<<endl; } int main() { skipliste test; test.print(); } |
Ausgabe:
1 2 | 9999 Speicherzugriffsfehler (Speicherabzug geschrieben) |
Warum bekomm ich bei der print()-Funktion einen Speicherzugriffsfehler??
PS: Ich hab den Code aus dem ganzen Programm rausgeschnitten und so modifiziert, dass er nur das Problem zeigt. Also nicht verwirren lassen falls irgendwas drumherum keinen Sinn macht ☺ es geht nur um die zwei "cout". Mfg sanchezzz