Я не понимаю, почему моя программа падает, когда пытаюсь заполнить некоторые данные в моей структуре таблицы, объявленной в main ...
Я знаю, что таблица сама по себе является указателем правильно?
Так что, в принципе, мне не нужно передавать адрес с помощью & var при использовании scanf ... но вот когда он падает для меня ..
когда я пытался передать входные данные с помощью scanf ("выражение", & 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;
}