我在C中模拟继承,但我对语言并不熟悉.下面是一些代码.Visual Studio有一条错误消息emp.name=n,上面写着:
表达式必须是可修改的左值.
如何更改它以便可以修改?
typedef struct {
char name[20];
double salary;
} Employee;
Employee newEmployee(char n[], double s)
{
Employee emp;
emp.name=n;
emp.salary=s;
return emp;
}
Run Code Online (Sandbox Code Playgroud)
您需要将数据复制n到Employee.name:
strncpy(emp.name, n, 20);
Run Code Online (Sandbox Code Playgroud)
但是,如果n不是以NULL结尾,则会遇到问题.使用以下代码来保证emp.name将以NULL结尾的字符串:
strncpy(emp.name, n, 19);
emp.name[19] = '\0';
Run Code Online (Sandbox Code Playgroud)