错误是:请求成员“a”的内容不是结构或联合。

#include<stdio.h>

typedef struct mia {
    int a;
}hola;

typedef struct m {
    hola **r;
}bic;

int main() {
    bic y;
    scanf("%d", &(y.r->a));
    printf("%d", (y.r->a));
    return 0;
}

最佳答案

您需要一个更复杂的语法来完成此任务:

int main()
{
    hola x;
    hola *ptr = &x;
    bic y = { &ptr };

    scanf("%d", &((*y.r)->a));
    printf("%d\n", (*y.r)->a);
    printf("%d\n", ptr->a);
    printf("%d\n", x.a);

    return 0;
}

输入
100

输出
100
100
100

注意,您可以取出hola *指针:
hola *ptr = *y.r;
printf("%d", ptr->a);

07-26 09:34