Hallo zu verkohlen habe ich versucht, einen Code zu Setup wieprintf mit Argumenten Funktionen einen Zeiger zurückkehr
#include <stdio.h>
struct _data;
typedef struct _data data;
typedef struct _data {
double x;
double y;
} data;
const char* data_tostring(data* a) {
static char buffer[255];
sprintf(buffer, "%f %f", a->x, a->y);
return buffer;
}
int main(){
data a;
data b;
a.x = 0;
a.y = 0;
b.x = 1;
b.y = 1;
printf("%s %s \n", data_tostring(&a), data_tostring(&b));
return 0;
}
mir die Ausgabe von 0 erwarteten 0 1 1, aber ich habe tatsächlich 0 0 0 0 Habe ich eine machen Fehler mit dem Schlüsselwort static
und dem Rückgabewert in data_tostring()
?
Danke für die Hilfe.
Leider ist Ihre Lösung genau das, was ich vermeiden möchte :) – Fabio
@Fabio: warum? Wenn Sie den gleichen Puffer verwenden möchten, benötigen Sie zwei separate Aufrufe von 'printf'. –
@Fabio: habe meine Antwort mit einer alternativen Lösung mit dem 'statischen Puffer' bearbeitet. –