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
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
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.
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Merci pour ta réponse à laquelle je m'attendais.
J'ai juste à faire,
Est ce que c'est bon ça?
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
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
Test ton petit code et tu verras immédiatement que oui.
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
J'espère que tu ne fais pas de delete sur ces pointeurs ensuite...
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![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Partager