Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C++] Plantage a la fermeture du programme

19 février 2006 à 15:25:29

Bonjour,

Je développe un petit projet pour mes études mais je tombe sur un problème à chaque fois que je ferme mon programme...ce n'est pas trop genant me direz vous mais de 1 ca fait pas propre et de 2 ca doit vouloir dire que je n'ai pas compris une subtilité du C++ et ca me derange beaucoup.

Mon programme est développez sous qt mais à prioris ce n'est pas ça qui doit faire planter...enfin j'espère que qt n'est pas incompatible avec ce que je veux faire...

Voila mon code: Othellier.h

#ifndef H_OTHELLIER
#define H_OTHELLIER

#include <qlabel.h>
#include <QWidget.h>
#include <QGridLayout.h>


class Case : public QWidget {
    public:
        Case( QWidget *parent = NULL );
};

class Othellier : public QLabel {
    public:
        Othellier( int sizeOthellier,  QWidget *parent = NULL );
        ~Othellier();
    private:
        Case ** tiles;
        int size;
};

#endif



Othellier.cpp
#include "othellier.h"

Othellier::Othellier( int sizeOthellier, QWidget *parent ){
    int i,j;
    QGridLayout *layout = new QGridLayout;

    setPalette(QPalette(QColor(0, 0, 0)));
    setAutoFillBackground(true);
    setFixedSize(440,440);

    tiles = new Case* [sizeOthellier];

    for( i=0;i<sizeOthellier;i++){
        tiles[i] = new Case [sizeOthellier];
        for( j=0;j<sizeOthellier;j++){
            Case *temp = &tiles[i][j];
            layout->addWidget(temp,i,j);
        }
    }

    this->setLayout(layout);
}

Othellier::~Othellier(){
    int i;
    for( i=0;i<size;i++){
        delete [] tiles[i];
    }
    delete [] tiles;
}

Case::Case( QWidget *parent ) : QWidget(parent){
    setPalette(QPalette(QColor(10, 173, 29)));
    setAutoFillBackground(true);
    setFixedSize(50,50);
}


Main.cpp

#include <qstring.h>
#include <qapplication.h>
#include <qpushbutton.h>
#include <qmenubar.h>
#include <qmenu.h>
#include "othellier.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    Othellier myWindow(8);
    myWindow.setGeometry(100, 100,700, 500);

    myWindow.show();

    return app.exec();
}


J'imagine que ca vient du faite de la matrice allouer dynamiquement mais malgrès le delete ca marche toujours pas...
  • Partager sur Facebook
  • Partager sur Twitter