如何正确分配新的字符串值?
#include <stdio.h>int main(int argc, char *argv[]){ typedef struct { char name[20]; char surname[20]; int unsigned age; } person; //Here i can pass strings as values...how does it works? person p = {"John", "Doe",30}; printf("Name: %s; Age: %d\n",p.name,p.age); // This works as expected... p.age = 25; //...but the same approach doesn't work with a string p.name = "Jane"; printf("Name: %s; Age: %d\n",p.name,p.age); return 1;}
在函数‘main’中:main.c:18:错误:当从类型‘char*’分配给类型‘char[20]’时,不兼容类型
#include <stdio.h>int main(int argc, char *argv[]){ typedef struct { char *name; char *surname; int unsigned age; } person; person p = {"John", "Doe",30}; printf("Name: %s; Age: %d\n",p.name,p.age); p.age = 25; p.name = "Jane"; printf("Name: %s; Age: %d\n",p.name,p.age); return 1;}
跃然一笑