Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Yekka en 14 Marzo 2009, 19:42 pm



Título: Declaración multiple de variables...
Publicado por: Yekka en 14 Marzo 2009, 19:42 pm
Hola chic@s

si tengo una rutina como la siguiente:
Código:
sub Rutina()
dim cadena as string
dim variable as integer


 .. cualquier accion con dichas variables...

end sub
y lo llamo cada minuto por decir algo, con un timer.

que sucede? estoy declarando una y otra vez dichas variables, que sucede con la memoria, uso mas y mas cada vez o uso el mismo espacio. eso mientras la aplicacion se ejecute, suponiendo que por ejemplo esa aplicacion dura unas 5 horas en proceso.

es una duda que me sigue desde hace ya bastante tiempo ..

bye!


Título: Re: Declaración multiple de variables...
Publicado por: Krackwar ™ en 14 Marzo 2009, 20:08 pm
No se declaran de nuevo.


Título: Re: Declaración multiple de variables...
Publicado por: Yekka en 16 Marzo 2009, 02:02 am
a ver si entiendo...

según entiendo, cuando declaras una variable, sre le asigna una dirección de memoría y los valores que dicha variable tome a lo largo del proceso, son almacenados en dicha dirección. Ahora bien, llamando una y otra vez a una rutina y siendo variables LOCALES ¿no se vuelven a declarar? es decir, ¿no se le asigna nueva dirección de memoría? pero esa variable pierde su valor, y cuando regrese a la rutina ya no lo tendrá ¿que pasa hay exactamente?

se que puedo mantener el valor en memoria con un statis, pero aun no me queda claro, gracias

bye!!


Título: Re: Declaración multiple de variables...
Publicado por: Krackwar ™ en 16 Marzo 2009, 02:13 am
Se vacian las variables cada ves que se entra en la funcion o usaban ebp la verdad es que no me acuerdo cual de las dos pero en las dos se limpian antes de todo.


Título: Re: Declaración multiple de variables...
Publicado por: BlackZeroX en 16 Marzo 2009, 06:17 am
Se vacian las variables cada ves que se entra en la funcion o usaban ebp la verdad es que no me acuerdo cual de las dos pero en las dos se limpian antes de todo.

si de hecho al termino del proceso se limpian sea cual sea. almenos que esten declaradas globalmente en un modulo o en el "encabezado" (hasta arrribobota donde no da la luz jo) en un formulario.

o ALMENOS que uses Static para declararlas hay no se limpian

Ejemplo:

{
dim variable
´demas procesos
}
en este caso se limpia cuando termina

{
Static variable
´demas procesos
}
en este caso perduraran los datos almacenados almenos que al ultimo se pongan un valor Nulo como 0 o "" según sea el caso

si se declaran en un modulo dichas variables serán globales almenos que se les defina lo contracion sean Publicas

public variable

o privadas

Private Variable

resulta y se aplica los mismo en un formulario clase o demás lugares,

Ojala te sirva lo expuesto.

Dulces Lunas.