Remove the * and the {}. Change this:
char (*standards[6])[5] = {{"GPRS"}, {"EDGE"}, {"HSDPA"}, {"HSUPA"}, {"HSPA"}, {"LTE"}};
To this:
char standards[6][6] = {"GPRS", "EDGE", "HSDPA", "HSUPA", "HSPA", "LTE"};
To the struct:
You cant initialize a struct member within its declaration. You need to do something like this:
typedef struct mobiltelefon {
char herstellername[HLEN];
double displaydiagonale;
aufloesung_t aufloesung;
char standards[NUMBER_OF_STRINGS][STRINGLENGTH+1];
} telefon_t;
And the initialize the variable like this (C99/C11 only):
telefon_t iphone = {.standards = {"GPRS", "EDGE", "HSDPA", "HSUPA", "HSPA", "LTE"}};
Or with memcpy:
memcpy(iphone.standards[0], "GPRS", 5);
memcpy(iphone.standards[1], "EDGE", 5);
memcpy(iphone.standards[2], "HSDPA", 6);
memcpy(iphone.standards[3], "HSUPA", 6);
memcpy(iphone.standards[4], "HSPA", 5);
memcpy(iphone.standards[5], "LTE", 4);
But this is a waste of space, if each phone has the same standards I would rather go with a global variable:
char teleon_standards[6][6] = {"GPRS", "EDGE", "HSDPA", "HSUPA", "HSPA", "LTE"};