返回一个结构导致乱码

Returning a structure results in gibberish

我在 C 中使用结构,当我尝试 return 函数中的结构时,当我尝试在 main 中打印该结构的内容时,它总是导致乱码。 这是我的代码:

#include <stdio.h>
struct etudiant
{
    int a;
    int b;
    int c;
};
typedef struct etudiant ETD;

ETD ajouter_etd()
{
    ETD e;
    scanf("%i%i%i", e.a, e.b, e.c);
    return e;
}

void main()
{
    ETD e;
    e = ajouter_etd();
    printf("%i%i%i", e.a, e.b, e.c);
}

您必须将变量的地址传递给 scanf,因为它需要知道在内存中的哪个位置放置其转换结果。这是通过 address-of operator (&).

完成的
#include <stdio.h>

typedef struct etudiant {
    int a;
    int b;
    int c;
} ETD;

ETD ajouter_etd(void)
{
    ETD e;
    scanf("%i%i%i", &e.a, &e.b, &e.c);
    return e;
}

int main(void)
{
    ETD e;
    e = ajouter_etd();
    printf("%i%i%i\n", e.a, e.b, e.c);
}