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 :

copie de pointeur


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut copie de pointeur
    Bonjour,

    Est ce qu'il est possible de copier un pointeur dans un autre?

    J'aimerai que 2 pointeurs différents pointent sur la même chose.

    Merci

    Alaninho

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 041
    Points
    33 041
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    un pointeur n'est rien qu'un type de variable "particulier" qui contient une adresse.
    Est-ce que 2 variables de type int peuvent avoir la même valeur ? Il en est de même pour 2 variables de type pointeur.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    Merci pour ta réponse à laquelle je m'attendais.

    J'ai juste à faire,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int a=5;
    int *x;
    int *j;
    x=&a;
    j=x
    Est ce que c'est bon ça?

    Je travaille avec des pointeurs sur des structures, j'ai essayer ceci mais j'ai des erreurs de segmentation. Je suppose que cela doit être dans les traitements qui suivent.

    Merci

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 041
    Points
    33 041
    Billets dans le blog
    4
    Par défaut
    Test ton petit code et tu verras immédiatement que oui.

  5. #5
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 617
    Points
    15 617
    Par défaut
    J'espère que tu ne fais pas de delete sur ces pointeurs ensuite...

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Un pointeur n'est jamais qu'une variable de type entier qui représente l'adresse mémoire à laquelle on va trouver la variable effective.

    Tu peux donc parfaitement copier la valeur d'un pointeur dans un autre pointeur sans que cela ne pose de problème.

    Mais...

    Il ne faut pas oublier que l'objet pointé a une durée de vie clairement définie:
    • entre la déclaration d'une variable du type en question et l'accolade fermante de la portée dans laquelle la dite variable est déclarée. (sauf au cas ou la variable sert de valeur de retour d'une fonction, auquel cas, sa durée de vie s'étend jusqu'à l'accolade fermante contenant la déclaration de la variable qui récupère cette valeur de retour)
    • entre l'allocation dynamique de mémoire avec new et sa libération avec delete

    Le gros risque qu'il y a en quasi permanence est de se retrouver avec un pointeur qui pointe sur une adresse mémoire qui correspond à un objet qui n'existe plus, soit parce qu'on a invoqué delete sur le pointeur, soit parce que l'on a quitté la portée dans laquelle l'objet pointé était déclaré.

    Toute tentative d'accès à cet objet détruit résultera en un comportement indéfini : dans le meilleur des cas, l'application plantera sur une erreur de segmentation, dans le pire... vas savoir quelle catastrophe tu vas provoquer

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/12/2014, 20h03
  2. Copy de pointeur
    Par Hitomi_Kay dans le forum Langage
    Réponses: 7
    Dernier message: 15/05/2009, 15h30
  3. Copie objet pointeur
    Par sony351 dans le forum C++Builder
    Réponses: 8
    Dernier message: 18/01/2009, 01h28
  4. Copie de structure par pointeur - Problème LSB MSB
    Par the_ionic dans le forum Réseau
    Réponses: 4
    Dernier message: 17/07/2006, 15h08
  5. Réponses: 3
    Dernier message: 24/04/2005, 14h19

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