Duda con Malloc y Free.
Publicado por Jordi (20 intervenciones) el 22/05/2001 15:55:33
Tengo una duda en el siguente código:
Mi función recibe dos parámetros, el que me interesa en este momento es \"grad\". Resuta ser que \"grad\" será la cantidad de columnas de un array multidimensional llamado \"*Datos[pos]\" sobre el cual necesito reservar memoria.
int *Datos[10]; /*variable global*/
guardar(int num[],int grad)
{
int col=0,nbytes=0;
nbytes = grad*sizeof(int);
if ((Datos[pos] = (int *)malloc(nbytes))== NULL)
{
printf(\"Insuficiente espacio de memoria\\n\");getche();exit(0);
}
*(*(Datos+pos)+col)=grad; /*Guardamos Grado en 1ra. posicion Aray*/
for(col=0; col<=grad; col++)
{
*(*(Datos+pos)+col+1)=num[col];
}
pos++; /*contador de memorias*/
printf(\"\\n GUARDADO EN MEMORIA - POSICION %d : \",pos);
}
}
Mi función recibe dos parámetros, el que me interesa en este momento es \"grad\". Resuta ser que \"grad\" será la cantidad de columnas de un array multidimensional llamado \"*Datos[pos]\" sobre el cual necesito reservar memoria.
int *Datos[10]; /*variable global*/
guardar(int num[],int grad)
{
int col=0,nbytes=0;
nbytes = grad*sizeof(int);
if ((Datos[pos] = (int *)malloc(nbytes))== NULL)
{
printf(\"Insuficiente espacio de memoria\\n\");getche();exit(0);
}
*(*(Datos+pos)+col)=grad; /*Guardamos Grado en 1ra. posicion Aray*/
for(col=0; col<=grad; col++)
{
*(*(Datos+pos)+col+1)=num[col];
}
pos++; /*contador de memorias*/
printf(\"\\n GUARDADO EN MEMORIA - POSICION %d : \",pos);
}
}
Valora esta pregunta


0