Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Copia de Arreglos y Memoria | Manipulación y Ordenamiento de Arreglos
Arreglos en C#

Copia de Arreglos y Memoria

Desliza para mostrar el menú

Al trabajar con arreglos en C#, es fundamental comprender cómo se almacenan en la memoria y qué sucede al copiarlos o asignarlos. Los arreglos en C# son tipos de referencia, lo que significa que las variables contienen una referencia (o puntero) a la ubicación donde se almacena la información del arreglo en la memoria, no los datos en sí mismos. Esto tiene implicaciones importantes cuando se asigna una variable de arreglo a otra o cuando se desea realizar una copia real del contenido de un arreglo. Si se pasan por alto estos detalles, es posible modificar datos en lugares no previstos, lo que puede provocar errores difíciles de detectar.

Program.cs

Program.cs

12345678910111213141516171819202122232425262728293031
namespace ConsoleApp { public class Program { public static void Main(string[] args) { int[] original = { 1, 2, 3, 4, 5 }; // Assigning the array reference int[] assigned = original; // Copying the array elements int[] copied = new int[original.Length]; for (int i = 0; i < original.Length; i++) { copied[i] = original[i]; } // Modify the assigned array assigned[0] = 99; // Modify the copied array copied[1] = 77; System.Console.WriteLine("original: " + string.Join(", ", original)); System.Console.WriteLine("assigned: " + string.Join(", ", assigned)); System.Console.WriteLine("copied: " + string.Join(", ", copied)); } } }

Cuando se asigna una variable de arreglo a otra, ambas variables apuntan a la misma ubicación en memoria. Esto significa que cualquier cambio realizado a través de una variable se refleja en la otra, ya que ambas son simplemente dos referencias al mismo arreglo. Para evitar esto, es necesario copiar cada elemento en un nuevo arreglo, como se muestra en el código anterior. Esto crea un nuevo arreglo en la memoria, por lo que los cambios en un arreglo no afectan al otro.

Esto introduce los conceptos de copia superficial y copia profunda. Una copia superficial solo copia la referencia al arreglo, no los elementos reales. Una copia profunda crea un nuevo arreglo y copia cada elemento en él, resultando en dos arreglos independientes.

Program.cs

Program.cs

1234567891011121314151617
namespace ConsoleApp { public class Program { public static void Main(string[] args) { int[] numbers = { 10, 20, 30 }; int[] shallow = numbers; shallow[1] = 99; System.Console.WriteLine("numbers: " + string.Join(", ", numbers)); System.Console.WriteLine("shallow: " + string.Join(", ", shallow)); } } }

El ejemplo de código demuestra lo que sucede cuando se realiza una copia superficial de un arreglo en C#. Cuando se asigna una variable de arreglo a otra, como int[] shallow = numbers, no se crea un nuevo arreglo ni se copian los elementos. En su lugar, ambas variables, numbers y shallow, apuntan al mismo arreglo en la memoria. Esto significa que cualquier cambio realizado a través de una variable será visible a través de la otra.

Note
Definición

Una copia superficial copia la referencia al arreglo, por lo que ambas variables apuntan a la misma ubicación en memoria. Una copia profunda crea un nuevo arreglo y copia todos los elementos, por lo que los arreglos son independientes.

1. ¿Qué sucede cuando asignas una variable de arreglo a otra en C#?

2. ¿Cómo puedes crear una copia real de un arreglo?

3. ¿Por qué es importante comprender la memoria de los arreglos al manipular datos?

question mark

¿Qué sucede cuando asignas una variable de arreglo a otra en C#?

Selecciona la respuesta correcta

question mark

¿Cómo puedes crear una copia real de un arreglo?

Selecciona la respuesta correcta

question mark

¿Por qué es importante comprender la memoria de los arreglos al manipular datos?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 3. Capítulo 5
some-alt