返回一个结构导致乱码
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);
}
我在 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);
}