Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Black_Cat en Abril 15, 2016, 07:56:40 PM

Título: Duda con vectores o array
Publicado por: Black_Cat en Abril 15, 2016, 07:56:40 PM
Viendo un script hoy, me surgió una duda.

Si yo tengo un código que inicializa un arreglo(array o vector) de elementos que vaya aumentando de 2 o en 2 ( o cualquier aumento > 1) tal como esto:

[GML]


for(var i=0; i<100; i+=2)
                array = i;
[/GML]

entonces... mi pregunta es: ¿se crean las posiciones intermedias?

Dicho de otra manera, se crean con el bucle for las posiciones:
array[0]=0, array[2]=2, array[4]=4

pero que sucede con las posiciones intermedias?

tales como array[1], array[3]... y así en lo sucesivo
Qué sucede con ellas? se inicializan? nunca se crean? están ahi ocupando memoria?


esa es mi duda, saludos  :D

Título: Re:Duda con vectores o array
Publicado por: bygdle en Abril 15, 2016, 08:03:29 PM
Sí, las posiciones intermedias se crean. Con un valor de 0.
Esto ya que los arrays reservan las posiciones anteriores no declaradas asignándole ese valor. Mejor dicho, con el ciclo estarías haciendo esto:
[gml]
array[0] = 0;
array[1] = 0;
array[2] = 2;
array[3] = 0;
array[4] = 4;
array[5] = 0;
array[6] = 6;
...
[/gml]
Título: Re:Duda con vectores o array
Publicado por: Black_Cat en Abril 15, 2016, 08:20:30 PM
ah, vale
eso soluciona mi duda XD básicamente si quisiera evitar ese cierto desperdicio de memoria, sería más conveniente usar ds_list o alguna de esas listas dinamicas?
Título: Re:Duda con vectores o array
Publicado por: Clamud en Abril 15, 2016, 08:25:01 PM
Puedes cambiar el ciclo de esta forma para no dejar espacios vacíos:
[gml]
for( i=0; i<100; i+=1 ) array = i*2;
[/gml]