Ada: Zahlenformatierung in C

Beitrag lesen

Hallo,

wenn ich in C eine Zahl für die Ausgabe formatieren möchte, printf dafür aber nicht ausreicht, wie würde ich die Speicherverwaltung für eine selbstgeschriebene Funktion vernünftigerweise anlegen?

1. Ich kann z.B. intern static char* benutzen und meine Funktion würde immer nur in diesen Bereich schreiben. Hat allerdings den Nachteil, daß ich sowas hier nicht machen kann

  
printf("x1 = %s, x2 = %s", myfunc(x1), myfunc(x2));  

weil der Speicher durch den zweiten Funktionsaufruf direkt überschrieben wird.

2. Ich kann andererseits in meiner Funktion malloc verwenden und einen char** als Parameter erwarten, mit dem nachher noch free aufgerufen werden muß. Dazu muß ich aber für jede Zahl, die ich formatieren möchte, meine Funktion mit einem neuen Pointerparameter aufrufen bzw. den Speicher aus vorigen Aufrufen "free"en, bevor ich einen neuen Aufruf mache.

3. Ich kann einfach auf den Parameter aus 2. verzichten und das Speicherleck ignorieren. Macht natürlich überhaupt keinen Spaß, wenn die Ausgabeformatierung diverse Male im Programm aufgerufen wird.

Bisher verwende ich 2., bin mir aber noch nicht sicher, daß das bereits der Weisheit letzter Schluß ist. Was könnt Ihr an Alternativen empfehlen?

Grüße
Ada