Bonjour, j'ai un projet composé de trois fichier: main.c , emb_fonct.c et emb.h
Ca ne marche pas mais je ne sais pas pourquoi.
Le probleme: je remplis ma route R à l'aide de la fonction Initialiser mais c'est comme si la route n'était pas enregistrée dans la memoire puisque mes printf qui suivent n'arrivent pas à accéder à ma route.
D'ou vient le probleme?

voici le main.c :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
#include "emb.h"
 
 
 
 
 
 
int main(){
 
int i=0;
 
    route R;
 
        Initialiser( R);
        // Le probleme: je remplis ma route R à l'aide de la fonction Initialiser mais c'est comme si la route n'était pas enregistrée
        //dans la memoire puisque mais printf qui suivent n'arrivent pas a accéder a ma route.
        // peux tu m'expliquer d'ou viens le probleme?
        //merci
 
 
 
 
 
        printf("position:%d\n ",R.tab[i].pos);
         printf(" vitesse:%d% \n",R.tab[i].vit);
         printf(" probabilite de freinage: %f \n",R.tab[i].proba_freinage);
         printf(" id: %c\n",R.tab[i].id);
 
         printf(" nombre de voiture sur la route:%d\n",R.nbV);
       //affichage(R);
 
 
 
}
Voici le emb.h:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
 
typedef struct voiture voiture;
struct voiture{
int pos;
int vit;
float proba_freinage;
char id  ;
};
 
 
typedef struct route route;
struct route{
 
voiture tab[79];
int nbV; //nombres de voitures dans le tableau
 
 
};
 
 
void Initialiser(route R);
void affichage(route R);
voici le emb_fonct.c:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
#include <stdio.h>
#include <stdlib.h>
#include "emb.h"
 
 
void Initialiser(route R){//creer une route R
    int i=0;
    char carac = 'o';
 
 
    printf("Combien de voitures se trouvent sur la route (entre 0 et 80)?\n");//mettre un LVB??
    scanf("%d",&R.nbV);
     while((long)getchar()!=10);
 
 
 
        for(i=0;i<=79;i++)
        {
            R.tab[i].id = carac;
        }
 
 
        for(i=0; i<R.nbV ;i++)
        {
            //remplir le type voiture
            printf("Quel est la position de la voiture sur la route(entre 0 et 79)?\n");//prendre en compte le fait que deux voitures ne peuvent pas occuper la meme position
            scanf("%d",&R.tab[i].pos);
             while((long)getchar()!=10);//vide le buffer du scanf, celui ci n'est pas forcement utile
 
            printf("Quel est la vitesse de la voiture sur la route(entre 0 et 5)?\n");
            scanf("%d",&R.tab[i].vit);
             while((long)getchar()!=10);
 
 
            printf("Quel est la probabilite de freinage de la voiture sur la route(entre 0 et 1)?\n");
            scanf("%f",&R.tab[i].proba_freinage);// probleme si on rentre une lettre au lieu d'un chiffre
             while((long)getchar()!=10);
 
            printf("Quel lettre permet d'identifier la voiture (entrer un charactere different de o)?\n");
            scanf("%c",&R.tab[i].id);
            while((long)getchar()!=10);
 
/*char ref='o';
     for(i=0;i<=79;i++){
        if(R.tab[i].id!=ref){
         printf("position:%d\n ",R.tab[i].pos);
         printf(" vitesse:%d% \n",R.tab[i].vit);
         printf(" probabilite de freinage: %f \n",R.tab[i].proba_freinage);
         printf(" id: %c\n",R.tab[i].id);
         printf(" nombre de voiture sur la route:%d\n",R.nbV);
        }
 
 
        }*/
}
}
 
 
void affichage(route R){//afficher une route R
    int i;
char ref='o';
     for(i=0;i<=79;i++){
        if(R.tab[i].id!=ref){
         printf("position:%d\n ",R.tab[i].pos);
         printf(" vitesse:%d% \n",R.tab[i].vit);
         printf(" probabilite de freinage: %f \n",R.tab[i].proba_freinage);
         printf(" id: %c\n",R.tab[i].id);
         printf(" nombre de voiture sur la route:%d\n",R.nbV);
 
        }
     }
 
 
}
J'espère que ce n'est pas une histoire de pointeur (puisque j'ai essayé avec des pointeurs et ca ne marchait pas)


Merci a tous.