Dans quelles circonstances souhaitez-vous utiliser un code de cette nature dans c++ ?
void foo(type *&in) {...}
void fii() {
type *choochoo;
...
foo(choochoo);
}
Dans quelles circonstances souhaitez-vous utiliser un code de cette nature dans c++ ?
void foo(type *&in) {...}
void fii() {
type *choochoo;
...
foo(choochoo);
}
Vous voudriez passer un pointeur par référence si vous avez besoin de modifier le pointeur plutôt que l'objet vers lequel le pointeur pointe.
Ceci est similaire à la raison pour laquelle les pointeurs doubles sont utilisés ; l'utilisation d'une référence à un pointeur est légèrement plus sûre que l'utilisation de pointeurs.
J'ai dû utiliser un code comme celui-ci pour fournir des fonctions pour attribuer de la mémoire à un pointeur passé et retourner sa taille parce que mon entreprise « s'oppose » à moi en utilisant le STL
int iSizeOfArray(int* &piArray) {
piArray = new int[iNumberOfElements];
...
return iNumberOfElements;
}
Ce n'est pas joli, mais le pointeur doit être passé par référence (ou utiliser un double pointeur). Si ce n'est pas le cas, la mémoire est attribuée à une copie locale du pointeur si elle est passée par valeur, ce qui entraîne une fuite de mémoire.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.