Shell 25-03-2023, 12:36
Buenas!.

En este ejemplo tenemos dos arrays, tabla1 y tabla2.

Vamos a asignar a tabla2 la referencia de tabla1
Anularemos la variable tabla1 y veremos que pasa con tabla2. ¿ Se perderá su referencia ?.
No se impacienten....comienza!!

Código:
Public Sub Ejemplo1()
 
  Dim tabla1 As Integer[]
  Dim tabla2 As Integer[]

  tabla1 = New Integer[100]
  
  MuestraDireccion("tabla1", tabla1)
  tabla2 = tabla1
  MuestraDireccion("tabla2", tabla2)    
  tabla1 = Null 'Hacemos nula
  MuestraDireccion("tabla1", tabla1)
  MuestraDireccion("tabla2", tabla2)    
 
End

Public Sub MuestraDireccion(nombre As String, tabla As Integer[])
 
  Print "La referencia de " & nombre & " es: " & Object.Address(tabla)
 
End

Salida:
 
Cita: 
La referencia de tabla1 es: 55AD39A9A518
La referencia de tabla2 es: 55AD39A9A518
La referencia de tabla1 es: 0
La referencia de tabla2 es: 55AD39A9A518

Tabla2 mantiene su referencia.

Saludos
Shell 25-03-2023, 12:30
Buenas!.

Pues estaba liado con el tema de los arrays. Wink

¿ Os acordáis de cuando os decía que si un array contiene 10 enteros y cada uno de estos ocupa 4 bytes que debería ocupar 40 bytes el total  ?
Pues parece que no es así. Confused

Código:
'Creamos y asignamos
Private tabla1[100] As Integer

Public Sub Main()
 
  'Creamos
  Dim tabla2 As Integer[]
 
  'Asignamos
  tabla2 = New Integer[100]   
 
  Randomize

  Print "El objeto tabla1 ocupa: " & Str(Object.SizeOf(tabla1)) & " bytes"
  Print "El objeto tabla2 ocupa: " & Str(Object.SizeOf(tabla2)) & " bytes"
 
  'Llenamos el contenido de los arrays
  tabla1 = LlenarArray(tabla1)
  tabla2 = LlenarArray(tabla2)
 
  Print "----------------------------------"
  'No hay cambios  
  Print "El objeto tabla1 ocupa: " & Str(Object.SizeOf(tabla1)) & " bytes"
  Print "El objeto tabla2 ocupa: " & Str(Object.SizeOf(tabla2)) & " bytes"
 
End

Public Function LlenarArray(tabla As Integer[]) As Integer[]
 
  Dim longitud As Integer
    
  longitud = tabla.Max
 
 
  For i As Integer = 0 To longitud
      tabla = Rand(0, 2147483647)
  Next
 
  Return tabla
 
End

Salida:
 
Cita:El objeto tabla1 ocupa: 400 bytes
El objeto tabla2 ocupa: 40 bytes
----------------------------------
El objeto tabla1 ocupa: 400 bytes
El objeto tabla2 ocupa: 40 bytes


Saludos
Shell 24-03-2023, 17:35
Buenas!.

A gusto del consumidor. Pero sorprende al precio que encuentras 16GB.
Fijaros las referencias que se les hace a Linux.

¿Cuánta memoria necesita para ejecutar aplicaciones de Windows, Mac OS X o Linux?

Saludos
Páginas (564):    1 192 193 194 195 196 564   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 292
Último miembro: DarkWolf
Temas del foro: 1,742
Mensajes del foro: 9,029
Últimos temas
Ordenar en un TableView
Foro: General
Último mensaje por: Shordi, 03-11-2025, 18:41
Respuestas: 3 - Vistas: 108
Odio a gb.Report
Foro: General
Último mensaje por: guizans, 02-11-2025, 13:36
Respuestas: 9 - Vistas: 1,557
Reportes de Gambas
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: Alberto59, 27-10-2025, 16:34
Respuestas: 2 - Vistas: 1,334
Ordenando las carpetas
Foro: Programación en otros lenguajes
Último mensaje por: tercoide, 22-10-2025, 15:57
Respuestas: 0 - Vistas: 116
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.