Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1755 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++]test sur le contenu d'un pointeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++]test sur le contenu d'un pointeur

n°1519097
patastronc​h
Posté le 23-02-2007 à 18:52:20  profilanswer
 

Bonjour,
 
Je débute en C++ et je bloque sur une situation surement classique :
 
J'ai un objet C.
 
J'ai un pointeur P sur l'objet C.
 
Je supprime C ou pas dans une fonction quelconque.
 
A la sortie de cette fonction j'aimerais faire des choses sur C si il a pas été supprimé.
 
Comment puis je tester mon pointeur P pour savoir si sur quoi il pointe a été supprimé ou pas ?  
 
Merci d'avance, et encore pardon si la question fait partie des questions redondante.

mood
Publicité
Posté le 23-02-2007 à 18:52:20  profilanswer
 

n°1519099
IrmatDen
Posté le 23-02-2007 à 18:59:21  profilanswer
 

Salut,
Il faut que le pointeur soit mis à 0 (ou NULL selon les préférences) après suppression. A la sortie de ta fonction, tu fais un simple if(P) ou if(P != 0) pour savoir s'il est toujours valide ou non.

n°1519101
patastronc​h
Posté le 23-02-2007 à 19:08:47  profilanswer
 

En fait je n'ai pas acces au pointeur  P depuis la fonction qui supprime ((ou pas) C.
 
 
Au cas ou si ca peut aider :
(En gros C est un arbre, et la fonction est récursive, dans certains cas certains (ou tous) noeuds de l 'arbre peuvent etre supprimés dans cette fonction. A la sortie de la fonction j'aimerais savoir si mes pointeurs sur les noeuds de l'arbre avant suppression sont des pointeurs qui pointent sur des noeud encore existant ou pas.)

n°1519105
IrmatDen
Posté le 23-02-2007 à 19:15:51  profilanswer
 

Ah, pardon, j'ai lu trop vite :/
Je pense qu'il serait mieux que la fonction prenne le pointeur. Sinon, je ne vois pas comment un noeud est supprimé, si ce n'est pas déjà un pointeur... En fait il faudrait en savoir davantage sur la structure de donnée utilisée (en tout cas, pour moi ;))

n°1519114
patastronc​h
Posté le 23-02-2007 à 19:24:42  profilanswer
 

Ok pour essayer de faire claire :
 
Un noeud est une class qui possède comme attribut :
un pointeur vers un noeud (son pere)
un vecteur de pointeur sur des noeuds (ses fils)
(le reste on s'en fout :))
 
J'ai une fonction f1 qui prends comme argument un pointeur sur un noeud N :
Pour chaque fils N' de N lancer f1(N');
f2(N);
 
 
Et ma fonction f2 peut supprimer entierement tous les noeuds.
Donc le cas problématique c'est si dans une des étapes récursives de f1 j'ai supprimé dans l'action f2 disons tout l'arbre, faire un f2 sur N lorsque je remonte d'un cran dansla récursion va me créer un segmentation fault (tout a faitjustifié).
 
Donc avant de lancer f2 sur N j'aimerais vérifier que N existe encore.
 
Si c'est pas clair hésitez pas me le dire :)

n°1519128
-ThX-
Not here anymore
Posté le 23-02-2007 à 19:51:51  profilanswer
 

Vois peut etre à utiliser des smart_ptr.
Ce type de pointeurs compte ses références.

n°1519129
IrmatDen
Posté le 23-02-2007 à 19:52:03  profilanswer
 

Si N est bien un pointeur sur un noeud, alors ce que j'ai dis précédemment fonctionne non?

Code :
  1. f1(N);
  2. if(N != 0)
  3.    f2(N);


Et si f2 est aussi récursive, il te suffit de faire ce test soit à l'entrée dans la fonction, soit juste avant son appel (la première solution est plus clair à la lecture et te permet de voir d'emblée que le paramètre est vérifié autant que possible).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++]test sur le contenu d'un pointeur

 

Sujets relatifs
Comment modifier le contenu dun fichier avec ofstream ou autre?recherche de script permettant de récupérer le contenu d'un fichier
lecture du port serie dans test bench vhdlFonction renvoyant pointeur de structure [Résolu]
[C#] [Résolu] Comment communiquer avec une dll c++Imprimer le contenu d'une DIV
Modifier contenu divPointeur de fonction membre avec heritage
pointeur sur std::vector<T>Tableau dans un div qui permet de scroller le contenu, pas l'en-tête.
Plus de sujets relatifs à : [C++]test sur le contenu d'un pointeur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR