segfault



  • Hi,

    ich bekomme einen segfault, wenn ich folgendes ausfuehre

    aus der main()

    QString* bla= bus->data();
          std::cout << bla->toStdString() << std::endl; //seg fault!
    

    aus bus.cpp

    QString* Bus::data()
    {
       QString* data= new QString();
       while(mach mal)
       {
           sp->getChar(&chout); //hole zeichen von serieller schittstelle
           data += chout;       //chout ist ein char*
       }
       return data;   
    }
    

    Das sollte an sich doch klappen, oder?

    Gruss
    Micha


  • Mod

    Micha_ schrieb:

    data += chout;
    

    fehlt wohl ein *



  • Verstehe ich nicht. Wo soll da ein * hin?

    chout ist vom Typ char*. Es wird von der seriellen Schnittstelle ein Zeichen zurueckgeliefert. Wenn ich mir data direkt in der Funktion ausgebe lasse, funktioniert es auch soweit. Nur wenn ich die Funktion verlasse und es von der main ausgeben lassen will, bekomme ich einen segfault. Komisch.

    Micha



  • Ok, danke. Erst denken, dann posten.


Anmelden zum Antworten