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 :

[Syntaxe] Syntaxe d'un delete?


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    lkjlgj
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : Angola

    Informations professionnelles :
    Activité : lkjlgj

    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Points : 96
    Points
    96
    Par défaut [Syntaxe] Syntaxe d'un delete?
    Bonjour !

    J'ai un souci pour libérer un tableau

    Je sais que dans un cas simple NEW et DELETE fonctionnent comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Tableau=new long[20];
    delete []Tableau;
    Mais, si j'ai une structure X avec un pointeur **Toto pointant vers
    des pointeurs de struct X :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Toto [10]->Tableau=new long[20];
    Pour nettoyer tout ça je dois "deleter" dans l'ordre :

    delete Toto [1 à x]->Tableau; // Ici y'a un problème !!!
    delete Toto [1 à x];
    delete []Toto ;

    Normalement on "delete" un tableau avec un "[]".
    Or, je n'arrive pas à caser mon "[]" dans "delete PolyCoocOrig[i]->[x]Noeuds".
    Et, la ligne actuelle ne fait pas le travail complètement.

    Je ne sais pas si je suis clair. En tout cas y'a un leak souligné par CodeGuard.

    Merci

  2. #2
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    tu as oublié un [] pour le delete du "Tableau", de plus il ne faut pas oublier de bien initialisé les "Tableau", soit NULL, soit avec un new, car sinon ton pointeur pointe n'importe ou dans la mémoire et là cela va planter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(int i=0;i<x;i++)
    {
        delete [] Toto [i]->Tableau; // si Tableau est dynamique
        delete Toto[i]; // si Toto[i] est dynmique
    }
    delete [] Toto; // si Toto est dynmique
    en espérant que cela corrige le problème
    Pensez aux tutoriels programmation : http://programmation.developpez.com/cours-tutoriels/

  3. #3
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    colle tes crochets a ton delete comme ca : delete[] tonTab.

    par ailleurs, je te conseille vivement de te tourner vers les conteneurs de la STL...
    besoin de réponses ? demande a un pote

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tout ça se trouve dans la FAQ.

  5. #5
    Membre régulier
    Profil pro
    lkjlgj
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : Angola

    Informations professionnelles :
    Activité : lkjlgj

    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Points : 96
    Points
    96
    Par défaut
    Merci ça marche top !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de syntaxe dans la commande delete
    Par mawelle dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 27/05/2008, 17h25
  2. erreur de syntaxe DELETE multi-tables
    Par yayacameleon dans le forum Requêtes
    Réponses: 7
    Dernier message: 12/04/2006, 11h34
  3. [MySQL] Erreurs de syntaxe sur requêtes DELETE
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/03/2006, 15h53
  4. Erreur de syntaxe: DELETE
    Par Pigoulou dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/01/2006, 06h51
  5. Syntaxe DELETE
    Par GuyLafleur dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/10/2005, 09h59

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