[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: OFF-TOPIC:Ayuda con programacion en C




Amed Muñoz Ramos wrote:

>
>
>      myPointer = (int *) malloc( sizeof(int) ); //Reserva memoria
>      para el apuntador para albergar un entero
>      myVal = (int *) malloc(sizeof(int) ); //Reserva memoria para
>      albergar un entero
>      *myPointer = 5;   //Guarda el valor 5 en el área reservada
>      de memoria
>      *myVal  = *myPointer; //Pasa el valor apuntado por myPointer
>      a myVal
>      free( myPointer ); //Libera la memoria
>      free( myVal ); //Libera la memoria
>
>
>
>      <Amed>
>
>      Hasta aquí va bien, pero en esta parte:
>
>
>
>      Ahora bien:
>
>      myPointer = (int *) malloc( sizeof(int) ); //Reserva memoria
>      para el apuntador para albergar un entero
>      *myPointer = 5;   //Guarda el valor 5 en el área reservada
>      de memoria
>      myVal  = myPointer; //Pasa la dirección apuntada por
>      myPointer a myVal (no pasa el valor 5)
>      free( myPointer ); //Libera la memoria
>      free( myVal ); //Libera la memoria
>
>
>
>      ¿Por qué liberas la memoria que tiene myVal si no le has
>      asignado ninguna?
>
>      En ese caso en la que tu hiciste un malloc a myPointer, y
>      luego le pasaste la dirección a myVal
>
>      ¿Estas de acuerdo que es el mismo espacio de memoria?
>      Bastaría con hacerle un free a cualquiera
>
>      de las dos variables.
>
>
>
********************************************
Cual fue el detalle???? que copie una línea de más cuando lo escribí del
primer ejemplo que puse.....OK???
Lógicamente que si el valor ya está apuntado por otra lo único que hay
que hacer es enviarlo a NULL el apuntador myVal y liberar el otro... =0(



Saludos

Atte.
Hugo Núñez Briseño


[Hilos de Discusión] [Fecha] [Tema] [Autor]