53 votes

Déterminer la taille du tampon sprintf - quelle est la norme ?

Lors de la conversion d'un int comme ceci :

 char a[256];
sprintf(a, "%d", 132);

quelle est la meilleure façon de déterminer la taille de a ? Je suppose que le réglage manuel est correct (comme je l'ai vu utilisé partout), mais quelle devrait être sa taille ? Quelle est la plus grande valeur int possible sur un système 32 bits, et existe-t-il un moyen délicat de le déterminer à la volée ?

7voto

HopeItHelps Points 87

Je vois que cette conversation a quelques années, mais je l'ai trouvée en essayant de trouver une réponse pour MS VC++ où snprintf ne peut pas être utilisé pour trouver la taille. Je posterai la réponse que j'ai finalement trouvée au cas où cela aiderait quelqu'un d'autre:

VC++ a la fonction _scprintf spécifiquement pour trouver le nombre de caractères nécessaires.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X