#include <stdio.h>
struct stu
{
char *name;
};
int main(void)
{
struct stu student;
struct stu *student1;
strcpy(student1->name,"zhangsan");//编译能通过但会出现断错误。
strcpy(student->name,"zhangsan")//编译能通过但会出现断错误。
return 0;
}
1 错误原因是因为没有为name 开辟空间char *name只是一个指针占4个字节储存的是地址,想使用需要开辟空间 如:name = (char *)(malloc)(10);
2 还有一个容易犯错的地方 如:struct stu *student 直接使用 printf("%s\n",student->name);
3 如果开辟空间像这样开辟 struct stu *student = (struct stu* )malloc(sizeof(struct stu)),还是不行因为没有为name 开辟空间。