Da fehlt die Länge des Buffers z.B. unsigned char Buffer[10] sonst wird
nur ein Zeiger auf ein char definiert.
initialisiert wird dann mit { (4,"abcd"),(5,"abcde")....}
Das letzte Komma ist bei dir zu viel da du nur 3 Elemente hast.
>> ist ein array von pointern, die nur mit Speicheradressen initialisiert
werden können.
Stimmt ich brauche garkein Pointerarray :D
Gibt es in c irgendwie ein macro bei dem gleich die länge automatisch
ermittelt wird, ohne das ich immer nachzählen muss? :D
z.b. sowas:
{.buffer = (unsigned char*)"abcdefz", .len = sizeof(.buffer)}
struct schrieb:> Gibt es in c irgendwie ein macro bei dem gleich die länge automatisch> ermittelt wird, ohne das ich immer nachzählen muss? :D
In C++ wäre es
constexpr int bla = strlen(string);
struct schrieb:> z.b. sowas:> {.buffer = (unsigned char*)"abcdefz", .len = sizeof(.buffer)}
Das sizeof bezöge sich hier die Größe des Zeigers auf den Buffer, also
z.B. 4 Bytes auf einer Plattform mit 32 Bit, oder 8 Bytes auf 64 Bit -
und nicht auf die Größe des Buffers selber.
struct schrieb:> Gibt es in c irgendwie ein macro bei dem gleich die länge automatisch> ermittelt wird, ohne das ich immer nachzählen muss?
Die Länge steht doch fest: nämlich soviel, wie ein Zeiger Platz braucht.
Um das, worauf der Zeiger zeigen soll, mußt du dich separat kümmern.
W.S.