[c++] Plantage à la fermeture du programme
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
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
#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
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| #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
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #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...