Cours:PointeursCpp : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m
Ligne 22 : Ligne 22 :
 
   cout << n1 << " " << *n2 << " " << n3 << " " << *n4 << endl;
 
   cout << n1 << " " << *n2 << " " << n3 << " " << *n4 << endl;
  
    
+
   n1 = 30;
 +
  *n2 = 40;
 +
  n4 = &n3;
 +
  n3 = 5;
  
 +
  cout << &n1 << " " << n2 << " " << &n3 << " " << n4 << endl;
 +
  cout << n1 << " " << *n2 << " " << n3 << " " << *n4 << endl;
 +
 +
  return 0;
 
}
 
}
 
</source>
 
</source>

Version du 22 septembre 2022 à 08:40

Analyse de code

Question.jpg Simuler le fonctionnement de ce programme :

int main()
{
  int n1=10;
  int *n2=nullptr;
  int n3=20;
  int *n4=nullptr;

  cout << &n1 << " " << n2 << " " << &n3 << " " << n4 << endl;
  cout << n1 << " " << *n2 << " " << n3 << " " << *n4 << endl;  // crash du programme

  n2 = &n1;
  n4 = n2;
 
  cout << &n1 << " " << n2 << " " << &n3 << " " << n4 << endl;
  cout << n1 << " " << *n2 << " " << n3 << " " << *n4 << endl;

  n1 = 30;
  *n2 = 40;
  n4 = &n3;
  n3 = 5;

  cout << &n1 << " " << n2 << " " << &n3 << " " << n4 << endl;
  cout << n1 << " " << *n2 << " " << n3 << " " << *n4 << endl;

  return 0;
}