Segfaults



  • Hallo zusammen,

    ich habe folgende Situation. Ich habe eine Klasse:

    class SVClass {
    public:
    	SVClass();
    	virtual ~SVClass();
    	std::string getName(){return name;};
    	void setName(std::string newName){name = newName;};
    
    	std::deque<std::string*> includeQ;
    	std::deque<std::string*> importQ;
    	std::deque<data::ParamPin*> parampinQ;
    	std::deque<data::Parameter*> parameterQ;
    	std::string extends;
    	std::deque<data::Variable*> variableQ;
    	std::deque<data::Port*> portQ;
    	std::deque<data::UVMField*> uvmFieldQ;
    	std::deque<data::Function*> functionQ;
    	std::deque<data::Task*> taskQ;
    
    private:
    	std::string name;
    
    };
    

    Wenn ich nun im Hauptcode eine neue Instanz erzeuge:

    SVClass *tmp = new SVClass;
    

    und dann auf irgendwas in dem Objekt zugreife, wie

    tmp->variableQ.push_front(...);
    

    Bekomme ich immer einen Seqfault. Das Problem ist wohl, dass ich den Speicher nicht richtig alloziiere. Aber wo muss ich das machen?
    Meine Konstruktren sind bisher leer.

    Vielen Dank, auch wenn die Frage natürlich sehr Noob mäßig ist.

    Beste Grüße



    1. Public Attribute sind ih (meistens). Methoden sind da meistens besser geeignet.
    2. Bist du sicher, dass du das Objekt mit new anfordern musst?
    3. Ohne den richtigen Quellcode können wir nicht rausfinden, wo das Problem ist (vermutlich nicht in den gezeigten Zeilen). Liefere uns am Besten vollständigen, aus Wesentliche reduzierten Quellcode, der aber dennoch das Problem enthält, damit wir es nachvollziehen können.

Anmelden zum Antworten