Comunidad Gambas-es
¿ Qué ocupa más un array estático o uno dinámico ? - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: General (https://gambas-es.org/forum-4.html)
+--- Tema: ¿ Qué ocupa más un array estático o uno dinámico ? (/thread-1303.html)



¿ Qué ocupa más un array estático o uno dinámico ? - Shell - 25-03-2023

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