• [^] # Re: Bonjour

    Posté par . En réponse au message Traduction d'un programme C++ en C. Évalué à 3.

    1ère remarque, la commande man est ton amie (sur linux, pas sur windows ou elle n'existe pas). C'est facile, je sais, mais à l'école on m'a toujours dis qu'il fallait dire le moins pertinent en premier :)

    2: avec man malloc, tu verras que malloc peut échouer. Du coup, de même que tu as vérifié le retour de fopen il serait de bon ton de vérifier le retour de malloc.

    3: ne pas utiliser de valeurs magiques. Ton fameux 20* qui apparaît à plusieurs reprises, mets-le plutôt dans une constante, comme ça par exemple: const int MAX_READ=20;. Ça te fera gagner du temps quand tu devras te relire, et quand tu t'apercevras que cette valeur est trop faible: un nom qui cause, et un remplacement unique dans l'ensemble de tes fichiers source.

    4: attention au style de codage. Si tu utilises une convention, utilises-la jusqu'au bout, ça t'éviteras pas mal de comportement non souhaités, aussi appelés: bugs. Par exemple, cette ligne: while (pointeur[k]) printf("%d\t", (int) pointeur[k++]); serait sûrement plus claire si coupée. D'ailleurs, un œil exercé pourrait ainsi repérer le copier/coller, et donc envoyer le code dans une fonction dédiée (collage tout à la fin, l'autre boucle while...).

    5: en tant que débutant, évites de combiner les opérateurs d'incrémentation et décrémentation avec d'autres. Selon qu'il s'agisse de post/pré - in/dé crémentation, les résultats peuvent être traîtres.

    6: encore le style de codage: tes indentations, soigne-les. L'indentation est ton amie, si tu la trahis, elle te rendras la même. Je sais, je me répète un peux rapport au point 4, mais il est possible que tu n'aies pas remarqué que tu utilises un pointeur déjà libéré à cause de ça...