这个问题以前有人问过,但据我所见,所有人都在滥用'a.b'来获取指针值。我正在使用'a->b',但它仍在抛出此错误。
这是我的代码,它是一个动态堆栈:
头文件:

typedef struct etCel{
    element *ele;
    struct cel *suiv;
} cel;

typedef cel* pile;

pile init_pile();
int affiche_pile(pile *p);

.c文件:
pile init_pile(pile *p){
    return NULL;
}
int affiche_pile(pile *p){
    printf("Valeurs de la pile:\n");
    while(p!=NULL){
        affiche_element(p->ele);
        printf("\n");
        p=*(p->suiv);
    }
    return 1;
}

最佳答案

typedef cel* pile;


int affiche_pile(pile *p){

这使得人们相信p现在是指向指针的指针。展开声明,您将得到
cel* *p;

因此,要么将函数签名更改为int affiche_pile(pile p)typedef cel pile

关于c - C-错误:请求成员“---”使用的不是结构或 union ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40904900/

10-13 05:25