> char nombre [] = "a,a,a,a,a,a,a,a,a";
17 caractères plus le \0 final => nombre a une taille de 18, et une taille mémoire de 18 lui est réservée
> printf("votre mot svp ? :\n" );
> scanf ("%s",nombre);
Maintenant, on change le contenu de nombre par celui de la chaîne tapée en entrée. Si celle ci (en comptant le \0 final) dépasse les 18 caractères, ça déborde et écrit n'importe ou en zone mémoire, par exemple, sur la zone réservée à stocker la valeur de test.
Le compilateur n'a pas de moyen de vérifier que ce qui va être entré va être de la bonne taille, mais à l'exécution, il pourrait y avoir des options de compilation qui font planter le programme dès que celui ci essaye d'écrire une valeur de variable en dehors de la zone mémoire qui lui a été réservée.
> char *nombre[1024];
Non! c'est char nombre[1024]; que vous vouliez taper je suppose.
A+,
Message édité par gilou le 07-02-2015 à 10:46:38
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --