Asignar un array a otra variable puede parecer una copia independiente. En Solidity, esa intuición depende de las ubicaciones de datos implicadas y debe comprobarse antes de interpretar una modificación.
La documentación sobre ubicación y asignación distingue copias y referencias. Una asignación entre variables memory que representan arrays puede conservar una referencia al mismo contenido, en lugar de crear otro array independiente.
Imagina una lista didáctica [3, 8]. Si una segunda variable memory referencia esa misma lista y cambia su primer elemento a 5, leer la primera variable puede mostrar también [5, 8]. Lo importante no son los nombres distintos de las variables, sino el contenido al que apuntan.
Dibuja referencias, no dos cajas por costumbre
Escribe los nombres de ambas variables y une cada uno con la misma caja de elementos. Después dibuja un caso que sí realiza una copia según las reglas documentadas. La diferencia visual ayuda a prever qué lectura cambiará.
No conviertas el ejemplo en la afirmación de que todas las asignaciones de arrays se comportan igual. Storage, memory y calldata tienen reglas distintas, y una estructura más compleja puede añadir matices.
Si haces una prueba local, registra la versión del compilador y las ubicaciones declaradas. Compara los valores antes y después de una sola modificación. Esa prueba limitada responde a una pregunta concreta; no demuestra que un contrato completo sea seguro ni que todas sus copias estén diseñadas correctamente.
Visual: ilustración editorial.

