Advertisements
I need some array of array of const strings.
This compiles just fine in C
char* names[] = {"John", "Adrian", "Mary", NULL};
char* towns[] = {"Paris", "London", "Amsterdam", "Madrid", NULL};
char** test[] = {names, towns, NULL};
Is there a shorter way to do them all in one, like this?
char** test[] = {{"John", "Adrian", "Mary", NULL}, {"Paris", "London", "Amsterdam", "Madrid", NULL}, NULL};
Gives a
warning: excess elements in scalar initializer
Thank you in advance!
>Solution :
You can use compound literal of array type from C99.
char** test[] = {(char*[]){"John", "Adrian", "Mary", NULL},
(char*[]){"Paris", "London", "Amsterdam", "Madrid", NULL},
NULL};