Bonjour,

Je cherche a dupliquer une structure qui ressemble a ca :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
typedef struct TEST{
     /* Methodes */
     int (*Read) (int parm1, int param2);
 
     /* Donnees */
     void* zone_mem;
     char* name;
     int value
} Parametres;
Je me suis cree une fonction qui permet de dupliquer une instance de cette structure :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Parametres* DuplicateParametres(Parametres* params){
 
Parametres* new_parametres = (Parametres*)malloc(sizeof(Parametres));
 
memcpy(new_parametres,params,sizeof(Parametres));
 
new_parametres->name = strdup(params->name)
 
return new_parametres;
}
Mon problème est que je ne sait pas bien me servir des pointeurs de fonctions,
je ne sait pas comment c'est géré en mémoire.
Je me demande donc si mon memcpy de la structure duplique également les pointeurs sur fonction (en l'occurence Read).

Mon deuxieme probleme est comment dupliquer la zone_memoire declarer en void*. Cette variable est un pointeur vers une zone memoire dependant du type de parametre cree et peut donc etre de differentes tailles.
Merci.