fonction renvoyant des pointeurs

Re: fonction renvoyant des pointeurs

par Raffaele Ancarola,
Number of replies: 0

Un pointeur, si il est bien construit par l'operateur new alors

il pointe vers une allocation en memoire. Le pointeur est interprétable comme un nombre entier qui corréspond à l'addresse en memoire de son allocation.

Une allocation peut être référencée par plusieurs pointeurs, donc il faut faire attention à l'éxistence et à la largeur de cette dérnière lorsque on accède.

Si un pointeur est simplement copié ou obtenu comme retour par une fonction, comme dans ton exemple,

alors seulement l'addresse est copié laissant l'allocation invariée.

Donc, pour chaque new, l'operation delete devrait être appellée qu'une seule fois parce qu'elle élimine l'allocation. En l'appellant une deuxième fois, ça va entrainer un segmentation fault.

Remanrque sur ton exemple: retourner un nullptr est comme retourner zero. Il ne pointe vers aucune allocation, donc c'est un cas triviale qui ne nécéssite même pas de delete.