Prgramm stürtz beim Zugriff auf QList ab.

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
Marvvvv
Beiträge: 15
Registriert: 16. Juni 2011 21:15

Prgramm stürtz beim Zugriff auf QList ab.

Beitrag von Marvvvv »

Hi,
Mein Programm schmiert bei dem Zugriff auf meine QList immer ab.
Ich zeige euch mal wie ich diese Fülle und wo ich sie aufrufe ;)

Code: Alles auswählen

class MainWindow : public QMainWindow {

    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_itemDoubleClicked(QTreeWidgetItem * item, int column);

private:
    Ui::MainWindow *ui;
    QList<Contact*> contact_list;
    void fuellen();
};

void MainWindow::fuellen() {
            /* ..... */
            Contact temp_contact(parent);

            temp_contact.loadData(tr("contacts/")+fileInfo.fileName());
            contact_list.append(&temp_contact);
            /*......*/ 
}

void MainWindow::on_itemDoubleClicked(QTreeWidgetItem * item, int column) {
    QString temp = item->text(0);
    int index = temp.toInt();
    Contact* test = contact_list[index];
    QMessageBox::information(this, tr("Test"), test->getFirstname());
}
Jemand eine Ahnung woran es liegen kann?

PS: Stellt euch vor fuellen(); wird im Konstruktor aufgerufen =) Und wenn ich contact_list.size() oder contact_list.count() benutze kommt auch die richtige anzahl bei rum!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn es den Index nicht gibt - was soll sonst passieren?
Ich glaube aber nicht dass er beim Index-Zugriff abstürzt sondern dann beim defrefernzieren - der Speicher ist nämlich nicht mehr initialisiert.
Was denkst Du wie lange deine lokale Variable lebt. In der List ist nur der Pointer.
--> C++ Grundlagen
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Marvvvv
Beiträge: 15
Registriert: 16. Juni 2011 21:15

Beitrag von Marvvvv »

Jetzt wo du es sagst :lol:
Aber danke habs durch deinen Hinweis gelöst. An einer anderen stelle war ich schon so schlau und habe die Objekte per new erstellt aber da war ich nciht aufmerksam genug danke. Und danke für so eine sehr schnelle Anwort. Ein Lob =)
Antworten