【C】结构体指针的使用必须初始化,其他变量定义对象时会赋0.

先说结论

  1. 结构体指针需要初始化 
  2.  结构体指针的成员指针同样需要初始化   
  3.  结构体变量定义的时候就已经分配了内存空间,而上面两个确没有 

struct test{
int i;
struct buf *p;
} aa;

//定义结构体aa

struct buf{
char data[512];
struct buf *prev;
struct buf *next;
} ;

对象t定义后里面的成员变量初始化为0了,但p并没有malloc分配空间,因此对aa.p->的任何赋值操作都会出错,解决方法:malloc分配空间  a.p = (struct buf*) malloc(sizeof(struct buf));p.prev =  之后,才可以赋值了。

猜你喜欢

转载自blog.csdn.net/m0_37362454/article/details/81330669