Si la chaîne n'était pas vide, j'aurais gueulé sur le fait que ça puisse planter à la première tentative de modification. Mais puisqu'elle est vide, il y a peu de chance qu'on veuille la modifier en écrasant son zéro terminal...
Si la chaîne n'était pas vide, j'aurais gueulé sur le fait que ça puisse planter à la première tentative de modification. Mais puisqu'elle est vide, il y a peu de chance qu'on veuille la modifier en écrasant son zéro terminal...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Oui, je reconnais que je l'avais oublié ...
Heureusement, les messages du compilateur sont là pour nous rappeler que nous ne sommes que des êtres de chair et donc faillibles !
Que celui qui n'a jamais oublié un cast ou qui n'en a jamais eu besoin me jette le premier toron de ferrite !
Bah, là, je n'ai fait que respecter les conditions du problème, y compris ton code initialement proposé pour strdup() - et j'ai conservé cette caractéristique - qui ne propose de réserver que la stricte longueur nécessaire à la chaine entrée par l'utilisateur ... soit juste 1 octet pour le zéro final en cas de chaîne vide !
Or, en cas de possibilité de modification de la chaîne, la fonction strdup() que tu proposais - et donc la mienne aussi, qui pousse juste la tienne un poil plus loin en gérant différemment la prise en charge d'une chaîne vide comme un échec de l'allocation - n'a plus lieu d'être et doit alors être repensée, et je ne comprends alors pas le sens de ta dernière remarque ... à moins qu'elle soit simplement le signe de ta reddition en rase campagne camouflée en retraite bien ordonnée !
C'est une reddition. Je disais que si jamais strdup() pouvait retourner des chaînes littérales non-vides, je gueulerais.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Merci pour ta réponse, elle à parfaitement fonctionnée, je ne me suis pas reconnecté entre temps car je bosse un peu partout en france pour le taf, mes excuses pour le retard.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager