Christian Seiler: (C++) Wie "Segmentation Fault" ausfindig machen?

Beitrag lesen

Hallo Hans,

vielleicht SpriteBase RescuerBase = new SpriteBase(); // Oder wie auch immer der Constructor der Klasse SpriteBase aussieht.

new wird in C++ nur bei Zeigern auf Objekte verwendet. Angenommen Du hast eine Klasse TestClass mit dem Konstruktor TestClass(int, int), dann kannst Du folgendes machen:

TestClass obj (2, 5);
TestClass *objp = new TestClass (2, 5);

obj ist dann ein Objekt auf dem Stack, auf das mit obj.eigenschaft / obj.methode zugegriffen wird. objp ist ein Zeiger auf ein Objekt auf dem Heap, auf das mit objp->eigenschaft / objp->methode zugegriffen wird. Dagegen ist

TestClass obj = new TestClass (2, 5);

Quatsch in C++.

Diese Zeile ist also nicht die Ursache für die Segmentation fault, sondern im ursprünglichen Code absolut richtig.

Viele Grüße,
Christian

--
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup