Ver Mensaje Individual
  #2  
Antiguo 18-01-2006
Sonic Sonic is offline
Miembro
 
Registrado: may 2004
Posts: 40
Reputación: 0
Sonic Va por buen camino
Buenas aoiTo!

Muchas gracias por remodelar tu mensaje. La verdad es que hacía ya tiempo que no usaba la función malloc para reservar memoria. No he podido dedicarle mucho tiempo a tu problema por lo que aún no comprendo el motivo, pero lo que sí puedo es aportar un par de soluciones:

He comprobado que si en vez de reservar memoria con la función malloc lo haces con la función calloc o con la función new, no da esos problemas, por si no conoces estas funciones (si conoces malloc me extraña que no conozcas calloc, pero por si las moscas) te pongo un ejemplo aplicado.

En el caso del calloc:

Código:
Catalogo= (tAlbum *)calloc(i,sizeof(tAlbum));
y en el caso del new

Código:
Catalogo= (tAlbum *)new tAlbum[i];
y ya continuando con la explicación te cuento que la memoria reservada con calloc se libera con la orden free igual que al usar malloc, pero que si lo que has usado a sido new (la opción que te recomiendo), la forma de liberar la memoria es así:

Código:
delete [] Catalogo;

Espero que te sirva de ayuda, seguramente esta tarde le dedique un poco más de tiempo a ver si consigo darle alguna explicación al problema.

Hasta la próxima!
Responder Con Cita