将一个字符串str中的字符放到结构数组中的问题
/*
目的: 将字符串str中的字符放到结构数组arr[0]中
*/
struct man{
char *name;
}arr[2];
void main()
{
char *str = "ABCDEFG";
struct man *p;
p = arr;
strcpy(p->name, str);
printf("%s\n", p->name);
}
正确的输出应该显示: ABCDEFG
但现在运行后输出总显示: Null pointer assignment
用 p->name = str; 替换掉strcpy(p->name, str);就能正常输出了.
或者改为
struct man{
char *name;
}arr[2] = {{" "},
{" "}};
void main()
{
char *str = "ABCDEFG";
struct man *p;
p = arr;
strcpy(p->name, str);
printf("%s\n", p->name);
}
也能正常输出,这是为什么?