Bonjour,
j'ai une structure et je veux créer un tableau de cette structure avec une allocation dynamique et le remplir à partir d'un autre tableau de celle-ci.
voici la structure:
je crée un tableau de cette structure et je le copie dans un autre créer avec un malloc() et je l'affiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 struct Distance { int idVille1; int idVille2; int distance; }; typedef struct Distance Dist;
mais le problème c'est que le résultat qui est bizzare.
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 int main(int argc, char* argv[]){ Dist a[11] = { {1, 2, 10}, {1, 3, 5}, {1, 4, 16}, {1, 5, 12}, {2, 3, 9}, {2, 4, 10}, {2, 5, 20}, {3, 4, 13}, {3, 5, 15}, {4, 5, 12}, {2, 6, 10} }; Dist *b = (Dist*) malloc(11 * sizeof b); for(int i=0; i<11; i++){ b[i] = a[i]; } for(int i=0; i<11; i++){ printf("%d %d %d\n", b[i].idVille1, b[i].idVille2, b[i].distance); } return 0; }
le voila :
et les 4 dernière ligne sont toujours les même à chaque fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 1 2 10 1 3 5 1 4 16 1 5 12 2 3 9 2 4 10 2 5 20 3 1041 0 808525875 807416116 10 909194295 540422449 667697 669497 6 10
merci pour votre aide.
Partager