Programación General > Visual C++

 Re: Duda con las variables STATIC y la función FindText

<< < (2/2)

shephiroth:
Buenas. Lo de la pereza no lo habia pensado xDD.

Lo que me comentas, en ningun caso esa memoria se reutilizaría, puesto que la funcion devuelve la estructura. En todo caso habría que adaptar el principal para que recoja la estructura de forma que no se pierda. Pero bueno, lo que quieras.

En todo caso, si como comentas no quieres acceder a ella para nada, no hace falta que guardes la estructura. Ten encuenta que en C no existe recolector de basura como en java (para quienes no sepan de lo que hablo, en java hay un recolector que elimina las zonas de memoria usadas A LAS QUE NO SE HACE REFERENCIA), por lo que la estructura en cuestion no desaparecería de memoria hasta que ella misma se elimine.

NEXTOR:
Hola, Sephi.

Gracias por tu ayuda pero... ¿estás seguro de lo que dices? :huh:

Según mis conocimientos de toda la vida de C, cuando en una función se declara una variable LOCAL (o sea, que no es static), en este caso la estructura "findreplace", la vida de esta variable (y por lo tanto su espacio en memoria) termina cuando acaba la función. Nosotros, antes de terminar pasamos un puntero a ese espacio en memoria, si, pero desde fuera si accedemos a ese espacio a través de este puntero podemos obtener cualquier cosa ya que cualquier otra función ha podido disponer de ese espacio para establecer sus variables en un momento dado. Otra cosa muy distinta es que, en un programa en particular y por casualidad, ese espacio en memoria no llegue a ser alterado hasta el momento de usar el puntero, pero no dejaría de ser un programa imprevisible.

De hecho, el libro de donde saqué el ejemplo ("Programación en Windows 95" de Charles Petzold) define la variable como static (vida de la variable hasta que finaliza el programa).

Un saludo. :hola:

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa