, wo der Code enthält W[]
die Compiler haben keine Ahnung, was zu machen.
Die Initialisierung muss durchgeführt werden, wenn die Variable erstellt wird. (Und die Variable W[1]
enthalten nur 1 Instanz von Daten, nicht zwei Instanzen
In der Regel am besten, die Struktur Definition getrennt von allen Instanzen dieser Struktur zu halten
So definiert zunächst die Struktur:..
struct student
{
char name[100];
int id;
char *department;
struct result
{
float gpa;
char grade;
};
};
erklären dann alle Instanzen der Struktur:
struct student R[1];
struct student W[] =
{
{"Saud Farooqui",137,"Electronics",3.05,'A'},
{"Talha Farooqui",129,"Civil",3.5,"A+"}
};
BTW: es ist in der Regel am besten, nicht versuchen, und drängen sich alles in ein Zeile Code
für Klarheit, empfehle ich mit dem inneren Satz von Klammern für die Embedded-Struktur, wie in:
struct student W[] =
{
{"Saud Farooqui",137,"Electronics",{3.05,'A'}},
{"Talha Farooqui",129,"Civil",{3.5,"A+"}}
};
Allerdings gibt es ein weiteres Problem, mit den Daten
Dieses Feld char grade;
wird als ein einzelnes Zeichen deklariert; jedoch werden die Daten für ‚Talha‘ zeigen ein Array von char "A+"
diejenigen Array von char handhaben, wird zuerst die struct Definition geändert werden muss, um:
struct student
{
char name[100];
int id;
char *department;
struct result
{
float gpa;
char grade[3];
};
};
und dann die Daten ändern, um immer haben keine Array für die ‚Klasse‘ Feld:
struct student W[] =
{
{"Saud Farooqui",137,"Electronics",{3.05,"A"}},
{"Talha Farooqui",129,"Civil",{3.5,"A+"}}
};
Beachten Sie die Daten für die ‚Klasse‘ Feld jetzt immer ein Array ist.
Soll 'W' einen oder zwei Einträge enthalten? –