Laufzeitfehler bei vector in Klasse und new
-
Hallo,
ich bin Anfänger. Vielleicht kann mir jemand helfen.
ich bekomme einen Segmentation fault bei der folgenden Konstruktion:int main{
Coord *mySecondCoord;
std::vector<double> x = mySecondCoord->getCoord();
}---
class Coord{
public:
Coord();
std::vector<double> getCoord();
private:
std::vector<double> cartCoord;
};---
Coord::Coord():cartCoord(3){
};std::vector<double> Coord::getCoord(){
return cartCoord;
};Ich bin für Kommentare dankbar.
Gruß ritzenko
-
Du dereferenzierst einen Zeiger der auf nichts sinnvolles zeigt... Was erwartest du?
-

check ich nicht. wo denn?
-
mySecondCoord ist ein uninitialisierter Zeiger.
-
Hier:
std::vector<double> x = mySecondCoord->getCoord();Lösung:
Coord *mySecondCoord = new Coord;
-
ritzenko schrieb:

check ich nicht. wo denn?Coord *mySecondCoord;
worauf zeigt mySecondCoord denn?
-
stimmt natuerlich.
danke
jetzt klappts
-
Denk dran, was du mit
newanforderst, musst du mitdeletewieder freigeben. Wobei das hier eigentlich gut auf dem Stack machbar wäre...