Hallo ich habe probleme eine Struct als pointer array zu initialisieren, kann man sowas in C überhaupt machen?
1 | #include <stdio.h> |
2 | |
3 | typedef struct { |
4 | int const len; |
5 | unsigned char * buffer; |
6 | } mem_t; |
7 | |
8 | mem_t *data[3] = { |
9 | {.buffer = (unsigned char*)"abcde", .len = 4}, |
10 | {.buffer = (unsigned char*)"abcdef", .len = 5}, |
11 | {.buffer = (unsigned char*)"abcdefz", .len = 6}, |
12 | } |
13 | |
14 | int main() |
15 | { |
16 | printf("Hello World"); |
17 | |
18 | return 0; |
19 | } |
1 | main.c:17:5: warning: braces around scalar initializer |
2 | {.buffer = (unsigned char*)"abcde", .len = 4}, |
3 | ^ |
4 | main.c:17:5: note: (near initialization for ‘data[0]’) |
5 | main.c:17:6: error: field name not in record or union initializer |
6 | {.buffer = (unsigned char*)"abcde", .len = 4}, |
7 | ^ |
8 | main.c:17:6: note: (near initialization for ‘data[0]’) |
9 | main.c:17:16: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] |
10 | {.buffer = (unsigned char*)"abcde", .len = 4}, |
11 | ^ |
12 | main.c:17:16: note: (near initialization for ‘data[0]’) |
13 | main.c:17:41: error: field name not in record or union initializer |
14 | {.buffer = (unsigned char*)"abcde", .len = 4}, |
15 | ^ |
16 | main.c:17:41: note: (near initialization for ‘data[0]’) |
17 | main.c:17:48: warning: excess elements in scalar initializer |
18 | {.buffer = (unsigned char*)"abcde", .len = 4}, |
19 | ^ |