c 如何实现char* name[5]={"故宫博物院","黄山风景名胜区","颐和园","泰山","四川九寨沟"};
[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
有什么代替方法吗
要求能对 Name做更改
struct Scenic{//景区
char* Name;
};
struct Scenic* p=(Scenic*)malloc(sizeof(Scenic));
head=p;
for(int i=0;i<5;i++){
p->Name=name[i];
struct Scenic* q=(Scenic*)malloc(sizeof(Scenic));
p->next=q;
p=q;
}
(1)需要给Name申请空间
(2)字符串的赋值需要用strcpy
代码修改如下:
char* name[5]={"故宫博物院","黄山风景名胜区","颐和园","泰山","四川九寨沟"};
struct Scenic{//景区
char* Name;
struct Scenic* next; //这里应该有个next指针吧
};
struct Scenic* p=(struct Scenic*)malloc(sizeof(struct Scenic));
p->Name = (char*)malloc(40); //40根据自己的需要调整
p->next = NULL; //赋值NULL
head=p;
for(int i=0;i<5;i++)
{
strcpy(p->Name,name[i]);
struct Scenic* q=(struct Scenic*)malloc(sizeof(struct Scenic));
q->Name= (char*)malloc(40); //40根据自己的需要调整
q->next = NULL; //赋值NULL
p->next=q;
p=q;
}