在定义结构体时不能开辟空间
比如这个例子:
typedef struct
{
recordnode head;
head = (recordnode)malloc(sizeof(recordnode));
int size;
}record;
这是因为在用该结构体定义变量的时候,比方说{record a;}这时候计算机执行到{head = (recordnode*)malloc(sizeof(recordnode));}这条语句的时候,就会为head分配空间,而在定义结构体的时候就执行到{head = (recordnode*)malloc(sizeof(recordnode));}这条语句也需要为head分配空间,这是矛盾的。
总结:所以,在定义结构体的时候不允许为指正变量分配空降。