Hola
Si tengo:
typedef struct {
float *vector;
}Call_Lists;
int main()
{
.
.
.
Call_Lists *CL=(Call_Lists *) malloc (19*sizeof (Call_Lists));
for(int i=0;i<19;++i)
CL[i].vector=(float *)malloc (24*sizeof (float));
.
.
.
}
cuando salgo, me vasta con ponerle un:
free(CL)
o tambien deberia hacerle un
for(int i=0;i<19;++i)
free(CL[i].vector)
Si pueden me justifican la respuesta...
Muchas gracias.
Saludos.
La regla de oro es "por cada malloc(), un free()".
El sistema operativo solo sabe que tú reservaste N zonas de memoria y por tanto debes liberar cada zona de manera individual. El hecho de que agrupes los punteros a dichas zonas en una estructura propia es indiferente.
gracias