今天在编译一个C语言程序时,对于结构体变量,报出错误
Error: request for member ‘xxx’ in something not a structure or union。

在网上查了一下,发现是->与.用错了,之前一直以为是一样的
在C语言中->与.是不一样的

struct List{
    int elem[MAXSIZE+1];
    int length;
}List,*pList;

这里我们定义了一个结构体

int main()
{

    pList L = (pList)malloc(sizeof(struct List));
    L->length=6;

    struct List List1 ={{1,2,3},5};
    printf("%d",List1.length);
    printf("%d",L->length);
    printf("%d",(*L).length);
    
    printf("%d",L.length);//错误的方法
    
}

这里可以明白如果是结构体指针可以用**-> 或者 ***的方式读取
结构体变量 访问内容时只能用 .

这好像是基础…这都可以错

更多推荐

Error: request for member ‘xxx’ in something not a structure or union。