【发布时间】:2015-12-03 01:36:15
【问题描述】:
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() 为“name”分配一个值,该值是另一个 struct personalDetails 中的值。
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;
请告诉我如何解决这个问题,提前谢谢!
编辑 1:这是为感兴趣的人准备的结构定义。
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;
};
感谢您的回答,strcpy 摆脱了编译错误,但现在当我输入“名称”的值时,我得到一个“分段错误”。有谁知道为什么?
【问题讨论】:
-
typedef是你的朋友 ;)