J'ai essayé de faire simple pour ne pas vous embrouiller, mais je m'aperçois qu'en fait, vous manquez d'éléments pour pouvoir répondre.
Je présente donc les choses de manière plus précise :
Soit la structure suivante :
1 2 3 4 5 6
| typedef struct myStruct
{
....
char name[10];
....
} myStruct; |
Soit une fonction qui renvoit un pointeur vers une "instance" de cette structure quand on lui communique un entier (référençant un jeu de données... enfin bref... peu importe) :
Et soit la fonction qui renvoie un pointeur vers le champ name quand on lui passe en paramètre un pointeur vers une structure myStruct :
char* getName(*myStruct);
Ces deux fonctions sont issues d'une API, et je n'ai donc aucun contrôle sur leur définition.
J'ai ensuite la fonction suivante :
1 2 3 4 5 6 7 8 9 10 11
| char** creationTableau(char** tab)
{
myStruct *structEntry;
tab = malloc (10*sizeof (*tab));
for (i = 0; i < max_node; i++)
{
structEntry = getEntry(i);
tab[i] = getName(node_entry);
}
} |
Comment corretement libérer la mémoire occupée par tab ?
Je n'ai pas de problème pour free(tab), mais c'est plutôt pour le contenu de tab...
Partager