<div dir="ltr">Hola Luis,<div class="gmail_extra"><br>2013/8/16 Luis Belmonte <span dir="ltr"><<a href="mailto:luispool1312@hotmail.com" target="_blank">luispool1312@hotmail.com</a>></span><br><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ok, tienes razón lo hace sin problemas. Entonces tendría que usar una variable apuntador local en caso de que tuviese que acceder a algún campo interno de la </blockquote>
<div><br></div><div>En tu caso, sí. Esto es porque 'Bombo' realmente es 'void *'. Por lo tanto, no podemos acceder a la variable apuntada, porque desconocemos su tipo de dato. Por esto, aplicamos un cásting a un puntero de un tipo conocido. Por ejemplo,</div>
<div><br></div><div>((BomboAp)b)->v</div><div><br></div><div>Esto puede ser algo difícil de leer, especialmente si vas a acceder a la variable apuntada, por lo que podemos crear un puntero local y auxiliar:</div><div><br>
</div><div>BomboAp bap = (BomboAp) b;</div><div>bap->v;<br></div><div>...</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">variable? Es que en los apuntes de la universidad hay en varios códigos de ejemplo en el que utiliza apuntadores para liberar memoria. Ejemplo:<br>

<br></blockquote><div><br></div><div>Sólo podemos liberar la memoria explícitamente que previamente creamos explícitamente. Cuando creamos memoria dinámicamente - y por tanto explícitamente - con 'malloc()' (o con 2 otras funciones estándares), obtenemos una dirección de memoria al comienzo de ese bloque de memoria contigua; o 'NULL', si no se pudo llevar a cabo nuestra petición. A la hora de liberar esta memoria con 'free()', pasamos la dirección de memoria que previamente obtuvimos.</div>
<div><br></div><div>La palabra clave aquí es "explícitamente". Si se trata de variables creadas implícitamente, el compilador es quien gestiona sus creación y destrucción, como ocurrir con todas las variables que definimos:<br>
<br>int num;</div><div>float fPrecio;</div><div>char szMensaje[] = "hola a todos";</div><div>...</div><div><br></div><div>La regla general es que por cada 'malloc()' (u otra función similar) que escribamos, debemos colocar su complemento: 'free()'.</div>
<div><br></div><div><br></div><div>Espero que esto aclare la duda.</div><div><br></div><div>Steven</div><div><br></div></div></div></div>