Seite 1 von 1

Prgramm stürtz beim Zugriff auf QList ab.

Verfasst: 6. Juli 2011 19:44
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!

Verfasst: 6. Juli 2011 20:01
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

Verfasst: 6. Juli 2011 20:07
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 =)