Bonjour,

Voila, j ai une la structure suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
typedef struct u_info
{
    int nb;
    char *data;
} u_info_t;
j ai une fonction qui creer un tableau de type u_info_t et qui doit le remplir.
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
 
u_info_t *fill_u_info(int len, char **name, int size)
{
    int i;
    u_info_t *tab_info = (u_info_t *) calloc(len, sizeof(u_info_t));
    u_info_t *info_tmp;
    char **tmp = name
 
    if (tab_info != NULL)
    {
        for (i = 0; i < size; i++)
        {
            info_tmp = get_info(*tmp);
            if (info_tmp != NULL)
            {
                tab_info[i].nb = info_tmp->nb;
                tab_info[i].data = info_tmp->data;
                free(info_tmp);
                tmp++;
            }
            else
            {
                // on desalloue tab_info;
                // ....
                tab_info = NULL;
                break;
            }
        }
    }
 
    return tab_info;
}
Cela fonctionne, mais je voulais savoir si ceci etait correct ? surtout au niveau du free(info_tmp) car je desalloue seulement l espace de la structure, mais je ne desalloue pas l espace de de son champ data.


Merci.


MAJ :
la fonction get_info() retourne une varaible de type u_info_t *.