bonjour,
lorsque l'on transmet un pointeur dans une fonction, la fonction crée-t-elle, comme une variable, une copie locale de la fonction ?
Par exemple :
Les deux sorties donnent la même adresse, qui n'est pas celle renvoyée par new; Ce que je comprend, c'est qu'une copie locale du pointeur est créée, puis détruite en fin de fonction, d'où pas de modification de l'adresse du pointeur pPointeur. En revanche, si passage du même pointeur par référence, l'obtention d'une nouvelle adresse par l'opérateur new est transmise au pointeur pPointeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 void function(double* pPtr) { pPtr = new double; } int(main void) { double* pPointeur; cout<<pPointeur<<"\n"; function(pPointeur); cout<<pPointeur<<"\n"; return 1; }
Ai-je raison dans mon raisonnement ?
Je vous remercie par avance de vos réponses.
Partager