Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Averiguar La Dirección De Memoria De Una Variable
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Averiguar La Dirección De Memoria De Una Variable 
 
Hola!.

¿ Se puede averiguar en gambas la dirección de memoria donde se encuentra almacenado un valor asignado a una variable ?.

Si tenemos la asignación:

numero = 1000

¿ Se puede saber a que dirección de memoria apunta numero ?.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Dirección De Memoria De Una Variable 
 
La idea de esta pregunta es para comprobar una cosa.

Imaginar que tenemos las variables A y B.

- 5 se almacena en A
- A + 12 se almacena en B
- Ahora cambiamos el contenido de A.
- 7 se almacena en A

Mi idea es comprobar si la dirección de memoria de A, ha cambiado con la nueva asignación.
Que sera lo más seguro.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Dirección De Memoria De Una Variable 
 
Os muestro un vídeo de un curso de programación fundamental de Python, donde trata las variables y las asignaciones de memoria.
Puede que todo esto sea muy didactico. Sabemos de sobra que es una variable, como la entiende el interprete.

Nosotros no le decimos que en una dirección de memoria almacene un valor, directamente, el interprete se encarga de eso.
Sería un poco engorroso.

Como siempre los subtítulos no son tan buenos.


Link


Espero que os guste.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Dirección De Memoria De Una Variable 
 
Shell escribió: [Ver mensaje]
La idea de esta pregunta es para comprobar una cosa.

Imaginar que tenemos las variables A y B.

- 5 se almacena en A
- A + 12 se almacena en B
- Ahora cambiamos el contenido de A.
- 7 se almacena en A

Mi idea es comprobar si la dirección de memoria de A, ha cambiado con la nueva asignación.
Que sera lo más seguro.

Saludos


No tiene por qué cambiar si su contenido ocupa lo mismo. Si almacena un entero, ocupa 4 bytes, por lo tanto, si le vuelves a asignar otro entero ocupará lo mismo y no hará falta ocupar otra posición en memoria. De todos modos, a menos que uses punteros con librerías externas, en gambas no debe preocuparte mucho ese tema. Si quieres experimentar con memoria y punteros usa C.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Dirección De Memoria De Una Variable 
 
Shell escribió: [Ver mensaje]

¿ Se puede averiguar en gambas la dirección de memoria donde se encuentra almacenado un valor asignado a una variable ?.


Ehmmm... dado que un Puntero contiene una dirección de memoria, y después que la función VarPtr() regresa un Puntero que apunta a los contenidos de una variable en la memoria, propono:

Public Sub Main()

  Dim numero As Integer = 1000
  Dim p As Pointer

    p = VarPtr(numero)

    Print p

End

 



 
última edición por vuott el Martes, 02 Septiembre 2014, 01:18; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Dirección De Memoria De Una Variable 
 
jguardon escribió: [Ver mensaje]
Shell escribió: [Ver mensaje]

Mi idea es comprobar si la dirección de memoria de A, ha cambiado con la nueva asignación.
Que sera lo más seguro.Saludos


No tiene por qué cambiar si su contenido ocupa lo mismo. Si almacena un entero, ocupa 4 bytes, por lo tanto, si le vuelves a asignar otro entero ocupará lo mismo y no hará falta ocupar otra posición en memoria.


Por lo tanto:

Dim numero As Integer = 1000
Dim p As Pointer

p = VarPtr(numero)
Print p

numero = 132423455
p = VarPtr(numero)
Print p


...demuestra que la dirección no cambia durante la ejecución del programa para el mismo tipo de variable (en este caso Integer).

Pero para cualquier otro Tipo de longitud no fija, puede cambiar. De hecho el siguiente código lo demuestra:

Dim cad As String = "esto es una cadena"
Dim p As Pointer

p = VarPtr(cad)
Print p

cad = "esto es otra cadena mucho mas larga que la anterior"
p = VarPtr(cad)
Print p


Por cierto, vuott, buen aporte. No me acordaba de la función VarPtr(), la consideraba sólo útil para uso con librerías externas.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Dirección De Memoria De Una Variable 
 
Gracias a los dos por vuestra ayuda.

Esta noche lo veo mejor con algo más de tiempo.
He visto algo que tengo que comentar, pero no se relaciona con esto.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Dirección De Memoria De Una Variable 
 
[quote user="jguardon" post="23007"][quote user="jguardon" post="22995"]
Shell escribió: [Ver mensaje]

Por cierto, vuott, buen aporte.

Saludos

Gracias, saludos muchos a ti tambien, jguardon.


Shell escribió: [Ver mensaje]
Gracias a los dos por vuestra ayuda.

Saludos

Saludos, Shell.
 



 
última edición por vuott el Martes, 02 Septiembre 2014, 01:22; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Dirección De Memoria De Una Variable 
 
esta pensando que ese código esta interesante y se puede aplicar a seguridad, por ejemplo en la variable de la contraseña sabiendo el lugar de la memoria que la podemos sobrescribir para no dejar expuesta la contraseña en ese lugar de la memoria.
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Dirección De Memoria De Una Variable 
 
V3ctor:

Citar:
la podemos sobrescribir para no dejar expuesta la contraseña en ese lugar de la memoria.

Si haces eso, pierdes el valor de la contraseña. No tiene sentido y no te da seguridad.

Para asegurar contraseña lo que tienes que hacer es encriptarlas.

http://jsbsan.blogspot.com.es/2011/...componente.html
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Variable Global Contra Variable Por Refere... Shell General 2 Martes, 28 Octobre 2014, 10:36 Ver último mensaje
jsbsan
No hay nuevos mensajes Que Propones Para Validar El Texto De Una ... v3ctor General 3 Jueves, 16 Julio 2015, 00:50 Ver último mensaje
vuott
No hay nuevos mensajes Averiguar Tipo De Variable Ricardo Prieto General 12 Viernes, 25 Marzo 2016, 18:41 Ver último mensaje
fedefunes
No hay nuevos mensajes Buscar Dirección, Mostrar Mapa Y Calcular... tincho Aplicaciones/Fragmentos de Código 1 Miercoles, 04 Marzo 2020, 20:36 Ver último mensaje
vuott
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario