C语言结构体定义malloc和*elem

img

上面两个和下面的malloc有什么关系吗?

第一个是静态分配,就是sqlist L的时候,这个L里面的任何东西都已经分配好相应的内存。第二个是动态分配,就是sqlist L的时候,L里的指针elem是没有实体内容的,需要malloc分配内存。

你看第一个他是一个数组,是已经分配内存了,计算机在定义数组的时候会为其分配空间。
第二个是一个指针,指向一块elem的空间,但是现在还没定义指向的位置,而且指针简单来看就是一个变量,它的作用是指向一块内容,不具备空间存放能力。