Comment copier une structure?
Bonjour, Je voudrai effectuer une copie d'une structure qui contient elle même une structure.
Code:
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?