Как правильно заполнить мою таблицу структур без сбоя программы? - PullRequest
0 голосов
/ 14 июня 2019

Я не понимаю, почему моя программа падает, когда пытаюсь заполнить некоторые данные в моей структуре таблицы, объявленной в main ... Я знаю, что таблица сама по себе является указателем правильно? Так что, в принципе, мне не нужно передавать адрес с помощью & var при использовании scanf ... но вот когда он падает для меня ..

когда я пытался передать входные данные с помощью scanf ("выражение", & T [i] .var) .. это работало, но при показе моего контента я обнаружил:

Problem Image

Как вы можете заметить, я не мог в событии поместить что-то для моей статистики и значений, полностью отличных от входных данных ... вероятно, потому что они берут адреса памяти ... но почему 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...