我不明白为什么在尝试将某些数据填充到在main中声明的结构表中时我的程序会崩溃... 我知道表本身就是指针吗? 所以基本上我真的不需要在使用scanf ...时使用&var传递地址,但是那对我来说崩溃了..
当我尝试通过 scanf(“ expression”,&T [i] .var) ..传递输入但有效时,却在显示我的内容时发现:
正如您所看到的,我无法为输入的统计信息和值添加一些完全不同的事件..可能是因为占用内存地址..但是为什么Id实际上起作用并且Lieu为null? 太奇怪了。
struct ChDep
{
int id;
int mins;
char nom[10];
char lieu[10];
double prix;
char stat;
};
//Function Fill some content to my Table
void RemplireHCD(int n, struct ChDep *T)
{
for (int i = 0; i < n; i++)
{
printf("Mission Numero : %d\n", i);
printf("ID = ");
scanf("%d", &T[i].id);
printf("\nDuree = ");
scanf("%d", &T[i].mins);
printf("\nNom = ");
scanf("%s", &T[i].nom);
printf("\nLieu = ");
scanf("%s", &T[i].lieu);
printf("\nPrix = ");
scanf("%lf", &T[i].prix);
printf("\nStatut = ");
scanf("%c", &T[i].stat);
system("cls");
}
}
//Function to show my Struct Table Content
void AfficherHCD(int n, struct ChDep *T)
{
system("cls");
for (int i = 0; i < n; i++)
{
printf("%d > [ ID: %d - Duree : %d - Libelee : %s - Lieu : %s - Prix : %lf - Statut : %c ]\n",
T[i].id, T[i].mins, T[i].nom, T[i].lieu, T[i].prix, T[i].stat);
}
}
int main(int argc, char *argv[])
{
struct ChDep HCD[20];
int n;
printf("SVP donnez Le Nombre de Mission A remplire : \n");
scanf("%d", &n);
system("cls");
RemplireHCD(n, HCD);
AfficherHCD(n, HCD);
getchar();
return 0;
}