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++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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. [LabView 7.1][Débutant] Garder en mémoire un tableau
    Par matchieu dans le forum LabVIEW
    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