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 :

Comment garantir la non destruction d'un pointeur


Sujet :

C++

  1. #1
    Membre confirm�
    Inscrit en
    F�vrier 2004
    Messages
    59
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 59
    Par d�faut Comment garantir la non destruction d'un pointeur
    Mes salutations,

    Y a t'il une mani�re pour savoir si un pointeur P n'a pas �tait d�truit afin d'invoquer ses m�thodes?

    Par exemple:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    void function(pointeur * p)
    {
     
      .......je veux savoir si ce p n'a pas été détruit.............
     
        p->setvl();  <------------ si p a été détruit dans un autre processus j'ai un crash du programme
     
    }
    Merci d'avnace

  2. #2
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Bonjour,
    Tr�s simple : utiliser des pointeurs intelligents
    Voici l'article int�ressant � lire Pr�sentation des pointeurs intelligents en C++ par Lo�c Joly

    [EDIT] : cependant, s'il s'agit d'un probl�me de concurrence, alors il faut aussi penser � mettre en �uvre des m�canismes de synchronisations (mutex par expl).

  3. #3
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 514
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 514
    Par d�faut
    Je genre de question montre un probl�me au niveau des r�gles de codage ou d�architecture de la solution logiciel.

    Soit l'�tat de l'objet contenant la METHODE SANS NOM permet de r�pondre � cette question, soit le pointeur a �t� r�initialis� � NULL.

    En clair, dans une conception intentinet soign�e, cette question ne se pose pas.

    pointeur P n'a pas �tait d�truit
    C'est quoi un pointeur d�truit ?
    Un pointeur il pointe (il ne tire pas), un point c'est tout.
    Si l'objet sur lequel pointe le pointeur a �t� lib�r� de la m�moire (appel du destructeur), cela ne change rien � l'objet (apr�s l'appel du destructeur), c'est juste que la m�moire o� il est est dans la liste des blocs m�moires libres.

    Vous pouvez vous servir de cette propri�t� pour faire du debugging, mais uniquement du debugging de votre m�canisme de gestion des r�f�rences, il y a _CrtIsValidPointer (http://msdn.microsoft.com/en-us/libr...45(VS.60).aspx)

  4. #4
    R�dacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supa�ro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing Supa�ro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par d�faut
    cela ne change rien � l'objet (apr�s l'appel du destructeur), c'est juste que la m�moire o� il est est dans la liste des blocs m�moires libres.
    Rien de plus d�pendant du syst�me.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une tr�s bonne doc sur le C++ (en) Why linux is better (fr)

  5. #5
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Citation Envoy� par bacelar Voir le message
    En clair, dans une conception intentinet soign�e, cette question ne se pose pas.
    Il m'a l'air d'avoir un probl�me d'acc�s concurrent/r�entrant et ses r�f�rences � une donn�e point�e sont mal synchronis�es.

    => comme 3DArchi en ce qui me concerne ; d'autant que les shared_ptr<> prennent en compte l'aspect de la destruction concurrente.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. R�ponses: 2
    Dernier message: 13/10/2007, 01h55
  2. [Cookies] non destruction d'un cookie de session
    Par psychoBob dans le forum Langage
    R�ponses: 13
    Dernier message: 16/06/2006, 13h20
  3. Ouverture non destructive Fichier
    Par xeon666 dans le forum C++
    R�ponses: 3
    Dernier message: 03/03/2006, 15h27
  4. [Droits] Comment garantir au mieux la confidentialit� ?
    Par mencaglia dans le forum D�cisions SGBD
    R�ponses: 2
    Dernier message: 06/02/2006, 09h39
  5. [Jtable]comment permettre le non selection d'une ligne ?
    Par Invit� dans le forum Composants
    R�ponses: 1
    Dernier message: 30/11/2005, 11h36

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