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:
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;
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
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;
}
mais le problème c'est que le résultat qui est bizzare.

le voila :

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
et les 4 dernière ligne sont toujours les même à chaque fois.

merci pour votre aide.