Compartir a través de


Cómo: Obtener acceso a un elemento de matriz con un puntero (Guía de programación de C#)

En un contexto no seguro, puede tener acceso a un elemento en memoria utilizando el acceso a elementos de puntero, como se muestra en el ejemplo siguiente:

       char* charPointer = stackalloc char[123];
      for (int i = 65; i < 123; i++)
      {
          charPointer[i] = (char)i; //access array elements
      }

La expresión entre corchetes debe poder convertirse implícitamente en int, uint, long o ulong. La operación p[e] es equivalente a *(p+e). Al igual que en C y C++, el acceso al elemento de puntero no comprueba errores fuera de los límites.

Ejemplo

En este ejemplo, se asignan 123 ubicaciones de memoria a una matriz de caracteres, charPointer. La matriz se utiliza para mostrar las letras en minúscula y en mayúscula en dos bucles for.

Observe que la expresión charPointer[i] es equivalente a la expresión *(charPointer + i) y se puede obtener el mismo resultado utilizando cualquiera de las dos expresiones.

// compile with: /unsafe
class Pointers
{
    unsafe static void Main() 
    {
        char* charPointer = stackalloc char[123];

        for (int i = 65; i < 123; i++)
        {
            charPointer[i] = (char)i;
        }

        // Print uppercase letters:
        System.Console.WriteLine("Uppercase letters:");
        for (int i = 65; i < 91; i++)
        {
            System.Console.Write(charPointer[i]);
        }
        System.Console.WriteLine();

        // Print lowercase letters:
        System.Console.WriteLine("Lowercase letters:");
        for (int i = 97; i < 123; i++)
        {
            System.Console.Write(charPointer[i]);
        }
    }
}
  

Vea también

Referencia

Expresiones de puntero (Guía de programación de C#)

Tipos de puntero (Guía de programación de C#)

unsafe (Referencia de C#)

fixed (Instrucción, Referencia de C#)

stackalloc (Referencia de C#)

Conceptos

Guía de programación de C#

Otros recursos

Tipos (Referencia de C#)