Datentyp aus Funktion direkt als Datentyp* (Pointer) übergeben
-
schlauch schrieb:
die Funktion ist aber nur dazu gedacht eine für die API-Funktion neu befüllte Struktur zu erzeugen. Sie wird eigentlich nur beim Aufruf dieser API-Funktion verwendet und die static struct kann in sofern nicht versehentlich mit falschen Werten neu erzeugt und damit überschrieben werden.
Die Aufrufe der API-Funktion können sich aber nicht überschneiden (Threads), ja?
-
schlauch schrieb:
Das stimmt wohl - die Funktion ist aber nur dazu gedacht eine für die API-Funktion neu befüllte Struktur zu erzeugen. Sie wird eigentlich nur beim Aufruf dieser API-Funktion verwendet und die static struct kann in sofern nicht versehentlich mit falschen Werten neu erzeugt und damit überschrieben werden.
mach doch sowas:
// MyStruct initialisieren void setup (struct MyStruct *s) { s.i = ...; ... } ... // in zwei schritten eine neue struct anlegen struct MyStruct s; setup (&s); ...
^^so erhältste jedesmal eine neue struct wo du sie brauchst.
wenn am anfang alles 0 sein soll, kannste dir sogar 'ne eigene init-funktion sparen und machst es einfach so:struct MyStruct s; memset (&s, 0, sizeof(s));