C/Visual C - Ayuda con unas funciones 2

 
Vista:

Ayuda con unas funciones 2

Publicado por Nasón (40 intervenciones) el 26/02/2004 00:32:42
Acabo de ver el mensaje enviado y me he dado cuenta de que no ha salido todo el texto que puse. Respecto a la pregunta anterior que salió incompleta decir que trabajo con VC++ y con Dev-C++.Continuo:
La otra función es esta:

void libera_memoria(double **a, int b)
{
int i;
//liberación del espacio asignado a cada una de las filas de a
for (i = 0; i < fil ; i++)
free (*(a + i));
//liberación del espacio asignado al array de punteros de a
free (a);
}

No se si funciona ya que como free no devueve nada no puedo hacer una comprobación como con malloc. Agradecería que alguien me despejara esta duda.

Perdonad que me ponga tan pesado pero es que descubrí esta página hace poco y tengo muchas dudas sobre el fantástico, maravilloso y rápido C.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con unas funciones 2

Publicado por chuidiang (677 intervenciones) el 26/02/2004 09:32:00
No veo ninguna pega (supongo que fil en el bucle es la b que te pasan).

De todas formas, si quieres asegurarte, despues de hacer un malloc escribe en pantalla la direccion de memoria devuelta. Te puede valer algo como esto

printf ("%p", puntero);

Antes de los free, escribe qué vas a liberar. Deben coincidir las direcciones de los malloc con las de los free.

No hay forma de comprobar si un free funciona bien, aunque se le supone. La unica pega es que hagas free de una dirección de memoria que no hayas hecho malloc previamente. Eso no protestara y aparentemente funcionara, pero hará que tu programa se caiga en otros sitios (posiblemente en otro malloc).

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar