Bootstrap

结构体注意事项

#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 开辟空间。 

;