"Segmentation fault (core dumped)" bei einem Array aus Zeigern

Ok, doch nicht gelöste ... (ich bin hier wirklich am verzweifeln)
Ich bekomme nur noch Segmentation fault/wirre Ausgaben ...
mache ich hier was Elementares falsch?
C++:
//als globales Objekt:
Simulation::Objekt **MainObjs;

//in der main:
MainObjs = new Simulation::Objekt*[3];
MainObjs[0] = new Simulation::Objekt(  5,-10,-10, 50, 1);
MainObjs[0]->werte_ausgeben();
und nein, MainObj wird sonst nirgendwo manipuliert ...
Clund
 
Also (falls das noch niemand mitbekommen hat)
ich verwende Linux, als IDE Codeblocks, als Compiler gcc ...
Visual Studio würde in ein Unterforum von hier gehören ...
Clund
 
Nein, daran ist grundlegend nichts falsch.

Nutze doch einfach mal den Debugger.

Wenn du mir den Code schickst, schau ich's mir mal an.
 
Es gibt in der Version die du mir gegeben hast keine Funktion namens werte_ausgeben.

Und wenn das Programm abstürzt und der Debugger anhält, dann müßtest du doch den Grund des Absturzes ermitteln können. Welche Zeiger-Variable ist denn nicht initialsiert?

Aber Folgendes:
C++:
Objekt::Objekt(){
    Objekt(0, 0, 0);
}

Objekt::Objekt(ld PosX, ld PosY, ld PosZ){
    Objekt(PosX, PosY, PosZ, 1);
}

Objekt::Objekt(ld PosX, ld PosY, ld PosZ, ld Massts){
    Objekt(PosX, PosY, PosZ,  Massts, false);
}
funktioniert nicht so wie du dir das vorstellst. Offenbar wolltest du von einem Konstruktor auf einen anderen Konstruktor weiterleiten. Das ist aber in der Form in C++ nicht möglich. Deine Anweisungen führen lediglich dazu, dass temporäre Objekte angelegt (und sofort wieder weggeräumt) werden; die Mitglieder des aktuellen Objektes sind weiterhin uninitialisiert.

In C++11 gibt es tatsächlich die Möglichkeit der Konstruktor-Delegation:
C++:
class A {
public:
  A() : A(3) {}
  A(int n);
}
 
Achso ....
daran lag es, an den Konstruktoren :eek:
ok, ich dachte damit könnte ich mir Schreibarbeit ersparen.
ich werde es mal ausprobieren und mich später wieder melden.
Clund
 

Neue Beiträge

Zurück