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 :

Probleme de desalocation memoire


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut Probleme de desalocation memoire
    Comment fait on pour desalouer ca correctement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        float ***data ;
     
        data = new float**[depth+1];// i et j commence a 1
        for(i=1;i<=depth;i++)
        {
            data[i] = new float*[deltaY+nb_zero +1 ];
            for(j=1;j<=(deltaX + nb_zero );j++)
            {
                data[i][j] = new float[2*(deltaX+nb_zero) +2 ];
     
            }
        }

  2. #2
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Salut,

    tu dois refaire tes boucles et faire un delete [] pour chaque new [].

    pense a utiliser la balise [code /code] SVP

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut
    j'ai fais ca mais ca plante:

    for(i=1;i<(depth+1);i++)
    {
    for(j=0;j<(deltaY+nb_zero);j++)
    {
    delete[] data[i][j];
    }
    delete[] data[i]
    }

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Citation Envoyé par le mauvais
    // i et j commencent a 1
    Résultat, ta boucle commençant à zéro fait un delete sur un pointeur non-initialisé...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut
    j ai pris ton code mais la j ai l droit a un acces violation

  6. #6
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Essaye ca alors, c'est exactement le code de Medinoc mais avec les indices de ton code a toi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        for(i=1;i<=depth;i++)
        {
            for(j=1;j<=(deltaX + nb_zero );j++)
            {
                delete [] data[i][j];
     
            }
            delete [] data[i];
        }
        delete [] data;

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Eh bien, généralement en C++, on utilise des conteneurs de conteneurs de conteneurs, mais rien que pour s'amuser, on va essayer quand même:
    Code C++ non-testé : 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
    void FreeTripleArray(float ***data, size_t depth, size_t tailleTotaleX)
    {
    	// i et j commencent a 1
    	for(i=1 ; i<=depth ; i++)
    	{
    		for(j=1 ; j<=tailleTotaleX ; j++)
    		{
    			delete[] data[i][j];
    			data[i][j] = NULL; //inutile puisqu'on va effacer,
    			                   //mais plus clair.
    		}
    		delete[] data[i];
    		data[i] = NULL; //même remarque.
    	}
    	delete[] data;
    }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Probleme d'allocation memoire et free()
    Par Darksnakes dans le forum Débuter
    Réponses: 6
    Dernier message: 19/03/2008, 18h53
  2. Problèmes d'allocation memoire
    Par nina2007 dans le forum Linux
    Réponses: 0
    Dernier message: 16/08/2007, 16h19
  3. Probleme de taille memoire
    Par esperance dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 12/01/2007, 23h22
  4. [std::vector] probleme de desallocation memoire
    Par jcloupgarou dans le forum SL & STL
    Réponses: 15
    Dernier message: 20/04/2006, 11h39
  5. probleme avec la memoire
    Par piff62 dans le forum C
    Réponses: 6
    Dernier message: 25/10/2005, 16h46

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