我在 C 中使用結構,當我嘗試從函式回傳結構時,當我嘗試在 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);
}
uj5u.com熱心網友回復:
您必須將變數的地址傳遞給scanf它,因為它需要知道在記憶體中放置其轉換結果的位置。這是通過地址運算子( &) 完成的。
#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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/370826.html
