Bonjour, Je voudrai effectuer une copie d'une structure qui contient elle même une structure.

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
 
struct vext 
{
    void **vecteur;
    unsigned int taille_physique;
    unsigned int taille_rallongement;
    unsigned int nombre_d_elements;
    void (*liberer)(void *);
    void (*afficher)(void *);
};
 
struct tas
{
  vext vecteur;
  int dernier_element;
  int (*comparaison) (void *, void *);
  void (*liberer)(void *);
  void (*afficher)(void *);
  bool inverser;
};
 
tas
tas_creer(fonction_comparer f)
{
  tas self = memoire_allouer(sizeof(struct tas));
 
  self->vecteur = vext_creer();
  self->comparaison = f;
  self->dernier_element= -1;
  self->liberer = NULL;
  self->afficher = afficher_chaine;
  self->inverser = false;
 
 
  return self;
}
 
 
void
tas_afficher(tas self)
{
  tas bob= tas_creer(self->comparaison);
 
  //peut on copier comme ca?
  bob = self;
 
  // ou comme ca?
  bob->vecteur = self->vecteur;
  bob->dernier_element = self->dernier_element;
  bob->liberer = self->liberer;
  bob->afficher = self->afficher;
  bob->inverser = self->inverser;
Je compile dans les deux cas sans erreur mais je pense que c'est à cause de ca que mon programme ne marche pas. Car peu être tout les champs ne se copie pas bien.

Quelle est la bonne méthode pour copier une structure?