IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

D�butant ! Perte de m�moire ?


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2018
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 27
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Par d�faut D�butant ! Perte de m�moire ?
    Bonjour a tous,

    Je code en ce moment un petit jeu de la vie sur QT Creator tous ce passe bien j'ai r�ussi avec par �tape et en automatique...
    Mais probl�me apr�s quelque dizaine d��tape le programme commence a ralentir j'usqua arriver a crasher..
    Je pense que j'ai du faire une fuite de m�moire avec l'utilisation des pointers...
    Ne regarder pas l'utilisation des classe car y en a pas j'ai juste voulu tester et apprendre avant de faire un vrai programme par la suite

    Voici le code cpp

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
     
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include "vector"
    #include <QGraphicsRectItem>
    #include <QDebug>
    #include <time.h>
    #include <windows.h>
    #include <QtCore>
     
     
     
     
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
     
        ui->setupUi(this);
        scene = new QGraphicsScene(this);
        ui->gVjeuDeLaVie->setScene(scene);
        blackPen = QPen(Qt::black);
        blue = QBrush(Qt::blue);
        white = QBrush(Qt::white);
        couleur = QBrush();
     
    }
     
    MainWindow::~MainWindow()
    {
        delete ui;
    }
     
    void MainWindow::on_pBJouer_clicked()
    {
        //recuperation nombre de case
        rect.clear();
        moleculeVie.clear();
        QString stringNbrCase = ui->nbrCase->currentText();
        int nbrCase = stringNbrCase.toInt();
        int nbrCaseLargeur = sqrt(nbrCase);
        int nbrCaseHauteur = sqrt(nbrCase);
        int tailleCase= ui->gVjeuDeLaVie->geometry().width() / nbrCaseLargeur;
        bool trueOrFalse;
     
        srand (time(nullptr));
     
        for(int i = 0; i<nbrCaseHauteur; i++)
        {
            std::vector<QGraphicsRectItem*>temp; // permet d'initialiser le vecteur 2 dimensions
            std::vector<bool>tempMoleculeVie;
            for(int u = 0; u<nbrCaseHauteur; u++)
              {
               if ((rand() % 3) == 1)
               {
                  couleur = blue;
                  trueOrFalse = true;
               }
               else
               {
                  couleur = white;
                  trueOrFalse = false;
               }
               tempMoleculeVie.push_back(trueOrFalse);
               temp.push_back(scene->addRect(i*tailleCase,u*tailleCase,tailleCase,tailleCase,blackPen,couleur));
              }
     
            rect.push_back(temp);
            moleculeVie.push_back(tempMoleculeVie);
     
        }
     
    }
     
     
    void MainWindow::on_pushButton_3_clicked()
    {
        while(1)
        {
            QCoreApplication::processEvents();
            Sleep(200);
            QString stringNbrCase = ui->nbrCase->currentText();
            int nbrCase = stringNbrCase.toInt();
            int nbrCaseLargeur = sqrt(nbrCase);
            int nbrCaseHauteur = sqrt(nbrCase);
            int tailleCase= ui->gVjeuDeLaVie->geometry().width() / nbrCaseLargeur;
            int compteur;
     
            for(int i = 0; i<moleculeVie.size(); i++) //longeur
            {
                std::vector<int>tempcompteurMoleculeVie;
                for(int u = 0; u<moleculeVie.size(); u++) //hauteur
                {
                    compteur=0;
                    if(moleculeVie.size()-1 && moleculeVie[i][u+1] == true )
                        compteur++;
                    if(u > 0 && moleculeVie[i][u-1] == true)
                        compteur++;
                    if(i < moleculeVie.size()-1 && moleculeVie[i+1][u] == true )
                        compteur++;
                    if( i >0 && moleculeVie[i-1][u] == true)
                        compteur++;
                    if(i >0 && u > 0 && moleculeVie[i-1][u-1] == true)
                        compteur++;
                    if( i < moleculeVie.size()-1 && u < moleculeVie.size()-1 && moleculeVie[i+1][u+1] == true )
                        compteur++;
                    if( i < moleculeVie.size()-1 && u > 0 && moleculeVie[i+1][u-1] == true )
                        compteur++;
                    if( i >0 && u < moleculeVie.size()-1 && moleculeVie[i-1][u+1] == true )
                        compteur++;
     
                    tempcompteurMoleculeVie.push_back(compteur);
                }
                compteurMoleculeVie.push_back(tempcompteurMoleculeVie);
             }
     
            for(int i = 0; i<moleculeVie.size(); i++) //longeur
                for(int u = 0; u<moleculeVie.size(); u++) //hauteur
                {
                    if(compteurMoleculeVie[i][u] == 3)
                    {
                        moleculeVie[i][u] = true;
                        rect[i][u] = scene->addRect(i*tailleCase,u*tailleCase,tailleCase,tailleCase,blackPen,blue);
                    }
                    else if(compteurMoleculeVie[i][u] > 3 || compteurMoleculeVie[i][u] < 2)
                    {
                        moleculeVie[i][u] = false;
                        rect[i][u] = scene->addRect(i*tailleCase,u*tailleCase,tailleCase,tailleCase,blackPen,white);
                    }
                }
            compteurMoleculeVie.clear(); //efface le vecteur
     
        }
    }
    Et le .h si jamais

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
    37
    38
    39
    40
    41
    42
     
    #include <QMainWindow>
    #include <vector>
    #include <QGraphicsScene>
    #include <QGraphicsRectItem>
    #include <QBrush>
    #include <QPen>
    namespace Ui {
    class MainWindow;
    }
     
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
     
    public:
        explicit MainWindow(QWidget *parent = nullptr);
        ~MainWindow();
     
     
     
    private slots:
        void on_pBJouer_clicked();
     
        void on_pushButton_clicked();
     
     
     
        void on_pushButton_3_clicked();
     
    private:
        Ui::MainWindow *ui;
        QGraphicsScene *scene;
        std::vector<std::vector<QGraphicsRectItem*>> rect;
        std::vector<std::vector<bool>> moleculeVie;
        std::vector<std::vector<int>> compteurMoleculeVie;
        QPen blackPen;
        QBrush blue;
        QBrush white;
        QBrush couleur;
     
    };
    Merci d'avance

  2. #2
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    A chaque fois que tu ex�cute on_pBJouer_clicked, tu ajoute nbrCaseHauteur * nbrCaseHauteur rectangles � ta sc�ne, que tu as normalement assez de rectangles, vu que tu en a cr�� ... au tour pr�c�dant.

    Sauf que les rectangles que tu as plac�s au tour pr�c�dant, tu en a perdu la trace lors de ton rect.clear(), et que tu ne peux donc pas les r�utiliser, mais tu ne les supprimes pas pour la cause

    Du coup, il ne faut pas t'�tonner si, � force d'ajouter tous ces rectangles en plus de tous ceux qui s'y trouvent d�j�, ta consommation de m�moire explose � chaque ex�cution!

    Ce qui n�cessiterait le moins de modifications dans ton code, c'est de faire appel � la fonction clear de ta QGraphicsScene

    Mais ce serait moche, parce que tout ce que tu aurais � faire, c'est de modifier la brush et / ou (�ventuellement) le pen des QGraphicsRectItem dont dispose la sc�ne pour en modifier les couleurs qui seront utilis�es.

    Ce que tu devrais donc faire pour �viter d'avoir � cr�er un tas de rectangle � chaque fois, ce serait:
    tu cr�es dans une fonction s�par�e (ou dans le constructeur) ta sc�ne, et tu la remplis de tous les rectangles dont tu as besoin, que tu maintiens -- effectivement dans rect.

    Puis, au niveau de on_pBJouer_clicked, tu ne vides surtout pas rect, et, tu te contente de modifier les couleurs de tous les rectangles pour mettre ta sc�ne � jour.

    Cela aura -- en outre -- l'�norme avantage d'am�liorer les performances, vu que la sc�ne n'aura pas � ... recr�er nbrCaseHauteur * nbrCaseHauteur rectangles � chaque fois...
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  3. #3
    Futur Membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2018
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 27
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Par d�faut
    Hello merci pour ta r�ponse.
    Effectivement �a tient bien la route sauf que j'utilise le on_pBJouer_clicked() une seule fois pour initialiser rect ou quand je veux refaire une nouvelle partie du coup il est utilis� max 1 fois ou 2 donc �a ne vient pas de l� :/

    Mais j'ai bien compris que j'ai fait une erreur avec rect.clear() vu que c'est un tableau de pointeurs je dois faire comment pour le r�initialiser ?
    comme �a ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    for(int i = 0 ; i < rect.size(); i++)
       for(int u = 0; i< rect.size() ; u++)
          delete rect [i][u];
    Et apr�s j'appuie sur ce bouton on_pushButton_clicked que j'aurai d� renommer on_pBAutomatique_clicked et c'est l� o� le programme commence � gal�rer :/

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    void MainWindow::on_pushButton_3_clicked()
    {
        while(1)
        {
            QCoreApplication::processEvents();
            Sleep(200);
            QString stringNbrCase = ui->nbrCase->currentText();
            int nbrCase = stringNbrCase.toInt();
            int nbrCaseLargeur = sqrt(nbrCase);
            int nbrCaseHauteur = sqrt(nbrCase);
            int tailleCase= ui->gVjeuDeLaVie->geometry().width() / nbrCaseLargeur;
            int compteur;
     
            for(int i = 0; i<moleculeVie.size(); i++) //longeur
            {
                std::vector<int>tempcompteurMoleculeVie;
                for(int u = 0; u<moleculeVie.size(); u++) //hauteur
                {
                    compteur=0;
                    if(moleculeVie.size()-1 && moleculeVie[i][u+1] == true )
                        compteur++;
                    if(u > 0 && moleculeVie[i][u-1] == true)
                        compteur++;
                    if(i < moleculeVie.size()-1 && moleculeVie[i+1][u] == true )
                        compteur++;
                    if( i >0 && moleculeVie[i-1][u] == true)
                        compteur++;
                    if(i >0 && u > 0 && moleculeVie[i-1][u-1] == true)
                        compteur++;
                    if( i < moleculeVie.size()-1 && u < moleculeVie.size()-1 && moleculeVie[i+1][u+1] == true )
                        compteur++;
                    if( i < moleculeVie.size()-1 && u > 0 && moleculeVie[i+1][u-1] == true )
                        compteur++;
                    if( i >0 && u < moleculeVie.size()-1 && moleculeVie[i-1][u+1] == true )
                        compteur++;
     
                    tempcompteurMoleculeVie.push_back(compteur);
                }
                compteurMoleculeVie.push_back(tempcompteurMoleculeVie);
             }
     
            for(int i = 0; i<moleculeVie.size(); i++) //longeur
                for(int u = 0; u<moleculeVie.size(); u++) //hauteur
                {
                    if(compteurMoleculeVie[i][u] == 3)
                    {
                        moleculeVie[i][u] = true;
                        rect[i][u] = scene->addRect(i*tailleCase,u*tailleCase,tailleCase,tailleCase,blackPen,blue);
                    }
                    else if(compteurMoleculeVie[i][u] > 3 || compteurMoleculeVie[i][u] < 2)
                    {
                        moleculeVie[i][u] = false;
                        rect[i][u] = scene->addRect(i*tailleCase,u*tailleCase,tailleCase,tailleCase,blackPen,white);
                    }
                }
            compteurMoleculeVie.clear(); //efface le vecteur
     
        }
    }

    edit: j'ai trouver cela vient du fait que quand je modifier le pointer de ma scene pour changer sa couleur je ne faisait pas delete

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
     else if(compteurMoleculeVie[i][u] > 3 || compteurMoleculeVie[i][u] < 2)
                    {
                        moleculeVie[i][u] = false;
                        rect[i][u] = scene->addRect(i*tailleCase,u*tailleCase,tailleCase,tailleCase,blackPen,white);
                    }
    modifier en
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
     else if(compteurMoleculeVie[i][u] > 3 || compteurMoleculeVie[i][u] < 2)
                    {
                        moleculeVie[i][u] = false;
                        delete rect[i][u];
                        rect[i][u] = scene->addRect(i*tailleCase,u*tailleCase,tailleCase,tailleCase,blackPen,white);
                    }

  4. #4
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Citation Envoy� par flemmix Voir le message
    Hello merci pour ta r�ponse.
    Effectivement �a tient bien la route sauf que j'utilise le on_pBJouer_clicked() une seule fois pour initialiser rect ou quand je veux refaire une nouvelle partie du coup il est utilis� max 1 fois ou 2 donc �a ne vient pas de l� :/
    Sans doute
    Mais j'ai bien compris que j'ai fait une erreur avec rect.clear() vu que c'est un tableau de pointeurs je dois faire comment pour le r�initialiser ?
    Tu ne le r�initialise pas, aussi longtemps que tu utilises la m�me sc�ne.

    ton std::vector<std::vector<QGraphicsRectItem*>> rect; n'est l� que pour te donner une moyen facile d'acc�der aux diff�rents rectangles qui composent ta sc�ne (qui repr�sente une grille, en l'occurrence) afin de les modifier au besoin.

    Et tant que les "propri�t�s fondamentales" de ta sc�ne (le nombre de lignes et de colonnes) ne changent pas, tu n'as absolument aucune raison de changer de sc�ne!

    Pour aller plus loin : m�me si tu veux lancer une nouvelle simulation, si le nombre de lignes et de colonnes reste le m�me que lors de la "simulation pr�c�dente", tu ne dois pas changer de sc�ne pour la cause : "tout ce que tu as � faire" c'est de remettre les diff�rents �l�ments dans un �tat "de base" (vide).

    Au final, il n'y a vraiment
    1. que tu lances une nouvelle simulation ET
    2. que le nombre de lignes ou de colonnes de ta grille change par rapport � la "simulation pr�c�dente"

    que tu dois ... d�truire la sc�ne existante (qui, par le syst�me parent / enfants, d�truira les rectangles qu'elle contient) et cr�er une nouvelle sc�ne que tu remplira avec de nouveaux rectangles.

    Et donc que tu dois vider ton ton std::vector<std::vector<QGraphicsRectItem*>> rect; (un simple rect.suffit(), du coup) afin de le remplir avec les nouveaux rectangles cr��s
    Citation Envoy� par flemmix Voir le message
    comme �a ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    for(int i = 0 ; i < rect.size(); i++)
       for(int u = 0; i< rect.size() ; u++)
          delete rect [i][u];
    Surtout pas, malhteureux!!!!

    Tu foutrais en l'air tout le syst�me parent / enfants de ta sc�ne!!!

    Il faut comprendre que, quand tu �crit le code scene->addRect(/* .... */); la sc�ne va se charger de cr�er un QGraphicsRectItem dont elle va prendre la "propri�t�". Elle te renvoie un pointeur vers ce QGraphicsRectItem pour te laisser l'occasion de le manipuler en cas de besoin, MAIS toute la m�canique interne de la QGraphicsScene est pr�vue pour que tous les �l�ment qu'elle pourra avoir cr��s seront automatiquement d�truits quand la sc�ne sera d�truite.

    Tu peux, si n�cessaire, d�cider de supprimer un �l�ment de ta sc�ne au traver de la fonction removeItem, mais si c'est pour retirer tous les �l�ments, autant cr�er une nouvelle sc�ne directement
    Et apr�s j'appuie sur ce bouton on_pushButton_clicked que j'aurai d� renommer on_pBAutomatique_clicked et c'est l� o� le programme commence � gal�rer :/

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    void MainWindow::on_pushButton_3_clicked()
    {
        while(1)
        {
            QCoreApplication::processEvents();
            Sleep(200);
            QString stringNbrCase = ui->nbrCase->currentText();
            int nbrCase = stringNbrCase.toInt();
            int nbrCaseLargeur = sqrt(nbrCase);
            int nbrCaseHauteur = sqrt(nbrCase);
            int tailleCase= ui->gVjeuDeLaVie->geometry().width() / nbrCaseLargeur;
            int compteur;
     
            for(int i = 0; i<moleculeVie.size(); i++) //longeur
            {
                std::vector<int>tempcompteurMoleculeVie;
                for(int u = 0; u<moleculeVie.size(); u++) //hauteur
                {
                    compteur=0;
                    if(moleculeVie.size()-1 && moleculeVie[i][u+1] == true )
                        compteur++;
                    if(u > 0 && moleculeVie[i][u-1] == true)
                        compteur++;
                    if(i < moleculeVie.size()-1 && moleculeVie[i+1][u] == true )
                        compteur++;
                    if( i >0 && moleculeVie[i-1][u] == true)
                        compteur++;
                    if(i >0 && u > 0 && moleculeVie[i-1][u-1] == true)
                        compteur++;
                    if( i < moleculeVie.size()-1 && u < moleculeVie.size()-1 && moleculeVie[i+1][u+1] == true )
                        compteur++;
                    if( i < moleculeVie.size()-1 && u > 0 && moleculeVie[i+1][u-1] == true )
                        compteur++;
                    if( i >0 && u < moleculeVie.size()-1 && moleculeVie[i-1][u+1] == true )
                        compteur++;
     
                    tempcompteurMoleculeVie.push_back(compteur);
                }
                compteurMoleculeVie.push_back(tempcompteurMoleculeVie);
             }
     
            for(int i = 0; i<moleculeVie.size(); i++) //longeur
                for(int u = 0; u<moleculeVie.size(); u++) //hauteur
                {
                    if(compteurMoleculeVie[i][u] == 3)
                    {
                        moleculeVie[i][u] = true;
                        rect[i][u] = scene->addRect(i*tailleCase,u*tailleCase,tailleCase,tailleCase,blackPen,blue);
                    }
                    else if(compteurMoleculeVie[i][u] > 3 || compteurMoleculeVie[i][u] < 2)
                    {
                        moleculeVie[i][u] = false;
                        rect[i][u] = scene->addRect(i*tailleCase,u*tailleCase,tailleCase,tailleCase,blackPen,white);
                    }
                }
            compteurMoleculeVie.clear(); //efface le vecteur
     
        }
    }
    (je vais partir du principe que tu voulais parler de on_pushButton_3_clicked() et que le 3 est "simplement" rest� coinc� dans ton clavier )

    Encore une fois, tu remplis "en boucle" ta sc�ne avec moleculeVie.size() * moleculeVie.size() nouveaux rectangles, qui vont "simplement cacher" ceux qui existent d�j� dans la sc�ne.

    Encore une fois, il ne faut pas t'�tonner si, � la longue, tu te retrouves avec tellement de QGraphicsRectItem dans la sc�ne (dont une tr�s grosse majorit� ne sert � rien, vu qu'ils sont "cach�s par d'autres) que la consommation de m�moire "explose" et que "tout part en couille"

    edit: j'ai trouver cela vient du fait que quand je modifier le pointer de ma scene pour changer sa couleur je ne faisait pas delete
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
     else if(compteurMoleculeVie[i][u] > 3 || compteurMoleculeVie[i][u] < 2)
                    {
                        moleculeVie[i][u] = false;
                        rect[i][u] = scene->addRect(i*tailleCase,u*tailleCase,tailleCase,tailleCase,blackPen,white);
                    }
    modifier en
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
     else if(compteurMoleculeVie[i][u] > 3 || compteurMoleculeVie[i][u] < 2)
                    {
                        moleculeVie[i][u] = false;
                        delete rect[i][u];
                        rect[i][u] = scene->addRect(i*tailleCase,u*tailleCase,tailleCase,tailleCase,blackPen,white);
                    }
    Et ma boule de crystal me dit que, quand tu essaye de quitter ton application, tu obtiens un joli message qui t'indique qu'il y a eu un probl�me. Me tromp�s-je
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 5
    Dernier message: 23/07/2007, 13h02
  2. R�ponses: 11
    Dernier message: 16/07/2007, 16h33
  3. Perte de m�moire - je ne comprend pas.
    Par pilouface dans le forum C
    R�ponses: 12
    Dernier message: 08/02/2007, 16h39
  4. Pertes de m�moire avec Rave
    Par stepschn dans le forum Delphi
    R�ponses: 8
    Dernier message: 15/10/2006, 11h18
  5. [D�butant] fuite de m�moire
    Par gletare dans le forum C++
    R�ponses: 5
    Dernier message: 12/06/2006, 20h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo