Bonsoir et bonne année à tous,

Je tiens à préciser que je débute donc si vous pouviez être indulgent avec mon pauvre code....

Je souhaite remplir un tableau avec des éléments de structure selon ce modèle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
struct model {
  int indice;
  int taille;
  int *donnees;
};
Voilà les fonctions associées
Fonctions.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
 
#include <stdio.h>
#include <stdlib.h>
#include "Fonctions.h"
 
/* Création d'une variable de type générique */
generique Creer_elem_generique(int c, int t)
{
 generique element;
 element.clef = c;
 element.taille = t;
 element.donnees = calloc( t , sizeof(int));
 return element;
}
 
 
/* Copie de structures generiques (U <- S) avec copie de leurs données */
generique Copie_elem_generique(generique S, generique U)
{
 int i=0;
 U = Creer_elem_generique(S.clef,S.taille);
 for(i=0; i < S.taille; i++){
    U.donnees[i] = S.donnees[i];
 }
 return U;          
}
 
 
/* Remplissage d'un tableau contenant des éléments de type générique */
void REMPLIR_tableau(generique *tableau, int taille_tab, int t_donnees,int Tri_entier)
{ 
 generique element = {0,0,NULL};
 int i=0,j=0,cle=0; 
   for(i=0; i < taille_tab; i++){
	  printf("\n clef [%i] : ",i);
	  scanf("%d",&cle);
	  if(Tri_entier == 0){
	     element = Creer_elem_generique(cle,t_donnees);
	     for(j = 0; j < t_donnees; j++){
		     printf("\n DONNEES [%i] : ",j);
	         scanf("%d",&element.donnees[j]); 
         }
         Copie_elem_generique(element, tableau[i]);  /*problèmatique*/
         printf("\n t [%d] = %d",i,tableau[i].clef);         /*problèmatique*/
	 printf("\n"); 
 
      }
   }	
}
 
/* Affiche la clef ainsi que les données numériques de chaque élément du tableau */
void AFFICHER_elem(generique *tableau, int taille_tab, int Tri_entier)
{
 int i,j;
  for(i = 0; i < taille_tab; i++){	
     printf("%d    ",tableau[i].clef);
     if(Tri_entier == 0){
       for(j = 0; j < tableau[i].taille; j++){
          printf("%d ",tableau[i].donnees[j]);  /* Ici  problème de syntaxe  car le champ données est aussi un tableau */
	}
     }
   } 
}
Ma fonction Copie_elem_generique est fausse mais je ne vois pas ou se trouve le problème.
Je souhaite entrer au fur et à mesure les éléments de type générique dans le tableau avec les données .
Cependant le résultat de sortie ne me renvoie que des 0 (le calloc sans doute) à l'affichage.

Merçi beaucoup de votre aide .

Cordialement Bil'0x