Je cherche le moyen le plus simple et universel de coder en C la fonctionnalité habituelle dans d'autre langages qui n'impose pas de prédéfinir la longueur d'une chaîne à composer. Je veux dire qu'en C pour obtenir le texte d'une donnée (fonction du type tostring) ou composer un texte quelconque (genre avec sprintf) il faut passer une chaîne tampon de longueur fixe. Ce qui pour moi est à la fois ennuyeux et erronné car cela force à surdimensionner, et systématiquement, sans compter que parfois il n'y a pas du tout de longueur max prédéfinie (ça dépend d'un contenu variable: quelle est la longueur max de l'expression textuelle d'un tableau? et je parle même pas du cas général de sprintf).

Mon objectif est d'envelopper (wrap) les fonctions de la lib dans des fonctions à moi, du type int_tostring(int i) (conversions) ou format(char * fmt, ...) (cas général de type sprintf). J'ai découvert le code %n qui permet de savoir combien d'octets ont été écris, ce qui est une grande aide. Mais c'est à postériori donc il faut malgré tout avoir d'abord passé une chaîne de longueur fixe. Comment font les auteurs de langages implantés en C?

Touts pistes bienvenues,
merci,
Denis