不能将“const char*”类型的值分配到“char*”类型的实体

img

第10行不能那么赋值,需要先给name申请空间,有以下两种修改方法:


修改方法一:

//需要包含这个头文件
#include <stdlib.h>
//赋值
stu1.name = (char*)malloc(20);
strcpy(stu1.name,"王琦");
//这种方法的好处是,只在需要的时候申请空间,能节省空间,
//不利的地方在于:需要手动释放申请的空间




修改方法二:
把结构体中的char* name改成char name[40];
然后把第10行换成:strcpy(stu1.name,"王琦");
这种方法的好处是不需要动态申请空间和手动释放空间,内存由系统回收

"王琦"是常量字符串,直接赋值给char*会提示错误
建议修改方法:
struct {
char name[20];
...
}stu1;
strcmp(stu1.name,"王琦");