extern int ID; // student ID number
struct personalDetails det; // pD
struct classRecords rec; // cR
struct student st1; // student 1
struct student st2; // student 2
struct student st3; // student 3
struct student st4; // student 4
struct student st5; // student 5
char pD[30]; // for storing values that will be assigned to personalDetails
double cR; // for storing values that will be assigned to classRecords
struct student studentID(int id) { // identifies student by ID
if (id == 1) {
struct student x = st1;
return x;
}
else if (id == 2) {
struct student x = st2;
return x;
}
else if (id == 3) {
struct student x = st3;
return x;
}
else if (id == 4) {
struct student x = st4;
return x;
}
else if (id == 5) {
struct student x = st5;
return x;
}
}
Мне нужна функция updateName(), чтобы присвоить значение «имя», которое является значением внутри другой struct personalDetails.Как присвоить значение структуре, которая возвращается через функцию в C
void updateName() {
printf("Enter student's name\n");
scanf("%s", pD);
studentID(ID).det.name = pD;
В настоящее время я получаю эту ошибку:
operations.c: In function ‘updateName’:
operations.c:55:24: error: lvalue required as left operand of assignment
studentID(ID).det.name = pD;
Скажите, пожалуйста, как я могу это исправить, заранее спасибо!
EDIT 1: Вот структура defs для заинтересованных.
struct personalDetails {
char *name;
char *phoneNum;
char *address;
};
struct classRecords {
double assignment;
double midterm;
double finalMark;
double total;
};
struct student{
struct personalDetails det;
struct classRecords rec;
};
Спасибо за ответы, зЬгсру избавились от ошибки компиляции, но теперь, когда я ввести значение «имя» я получаю 'ошибку сегментации. Кто-нибудь знает, почему?
'typedef' является вашим другом;) –