Je réalise que ce code est défectueux. Cependant, je suis tombé sur un comportement curieux que je me demandais si quelqu'un pouvait expliquer.comportement curieux de scanf
Exemple 1:
char *foo;
scanf("%s",foo);
printf("%s",foo);
sortie est le suivant: (null).
Exemple 2:
int i;
char *foo;
scanf("%s",foo);
printf("%s",foo);
sortie est: val de foo!
Pourquoi la présence de int i provoquerait-elle le "travail"?
Cela ne fonctionne pas. Il semble arriver à faire ce que vous attendez, mais c'est un comportement indéfini et donc un bug sérieux. – delnan
D'après ce que vous avez posté, foo n'a aucune valeur. C'est un pointeur vers un morceau de mémoire non assigné. – SlappyTheFish
Je suppose que ce serait assez ennuyeux trouvé ce genre de bug dans vos propres programmes. ;) – BlackBear