Citation :
1-"un zéro binaire qui manquerait à la fin d'une chaine de caractères". est ce que je dois ajouter un "\0" à la fin de chaque chaque de caractère ??? je croyais qu'il s'ajoutait tout seul
|
Je n'ai pas dit à la fin de chaque caractère mais à la fin de chaque chaine de caractères, et j'ai employé le conditionnel parce que, sans voir le code, il est impossible de le savoir avec certitude. Le zéro binaire de fin de chaine n'est pas forcément présent, cela dépend des circonstances.
Citation :
3-"un scanf qui fait déborder". le scanf est du genre : " scanf ("%type",&(nom_structure[ i].cham)); "
|
Ah, donc il y a un scanf(). Il vaut mieux les éviter et avoir des fgetc() de stdin à la place, ou des fgets(), mais vous n'avez peut-être pas encore appris cela. Un inconvénient du scanf(), est qu'il n'y aucune vérification des paramètres lors de la compilation car les paramètres peuvent avoir n'importe quel type. Un autre inconvénient est que l'utilisateur peut rentrer une chaine de caractères trop longue, par exemple il peut taper "abc" pour un champ défini en char champ[3];, et cela causera un débordement (car la taille de 3 est insuffisante étant donné qu'il faut prévoir une place pour le zéro binaire de fin de chaine).
Message édité par billgatesanonym le 13-12-2010 à 23:46:15