关于char*与string的问题

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;
}