Ich habe mich schon seit einiger Zeit damit beschäftigt, aber ich bekomme immer noch die gleiche Warnung: "Inkompatible Zeigertypen übergeben 'char * [15]' an Parameter vom Typ 'char *' [-Wincompatible -pointer-types]: strncpy (Person-> Vorname, Fn [j], NAME_SIZE - 1); "Inkompatible Zeigertypen in C
while (i < numPersons) {
j = rand() % NUM_NAMES;
person->firstName[NAME_SIZE - 1] = "\0";
strncpy(person->firstName, fn[j], NAME_SIZE - 1);
j = rand() % NUM_NAMES;
person->familyName[NAME_SIZE - 1] = "\0";
strncpy(person->familyName, sn[j], sizeof(person->familyName) - 1);
if (rand() % 2) {
person->emplyeeOrStudent = 1;
populateStudent(&person->stu);
} else {
populateEmployee(&person->emp);
person->emplyeeOrStudent = 0;
}
person++;
i++;
}
Dies ist für die Struktur Person:
struct Person{
char *firstName[15];
char *familyName[15];
char *telephone[10];
union combine comb;
unsigned int emplyeeOrStudent:1;
};
zeigen Sie die Struktur 'person' – coderredoc
was ist' fn' und 'sn'? – yano
Ich denke Person-> Vorname [NAME_SIZE - 1] = "\ 0"; -> Person-> Vorname [NAME_SIZE - 1] = '\ 0'; –