Attention

Une erreur facile à commettre est d'omettre les opérateurs & devant les paramètres de scanf. C'est une erreur difficile à détecter car le compilateur ne donnera aucun message d'erreur et à l'exécution, ce sont les valeurs de i et j qui seront interprétées comme des adresses par scanf. Avec un peu de chance ces valeurs seront des adresses invalides, et le programme s'avortera3.2 sur l'exécution du scanf, ce qui donnera une idée du problème. Avec un peu de malchance, ces valeurs donneront des adresses parfaitement acceptables, et le scanf s'exécutera en allant écraser les valeurs d'autres variables qui ne demandaient rien à personne. Le programme pourra s'avorter beaucoup plus tard, rendant très difficile la détection de l'erreur.



Matthieu Moy 2017-02-08