Como: Acesse um elemento de matriz com um ponteiro (guia de programação translation from VPE for Csharp)
Em um contexto sem segurança, você pode acessar um elemento na memória, usando o acesso do elemento de ponteiro, sistema autônomo mostrado no exemplo a seguir:
char* charPointer = stackalloc char[123];
for (int i = 65; i < 123; i++)
{
charPointer[i] = (char)i; //access array elements
}
A expressão entre colchetes deve ser implicitamente conversível no int, uint, long, ou ulong. A operação p [e] equivale a *(p+e).Como o C e C++, o acesso de elemento do ponteiro não verifica out-of-bounds erros.
Exemplo
Neste exemplo, 123 locais da memória são alocados para uma matriz de caractere charPointer. A matriz é usada para exibir as letras em minúsculas e letras maiúsculas em dois para loops.
Observe que a expressão charPointer[i] é equivalente à expressão *(charPointer + i), e você pode obter o mesmo resultado usando uma das duas expressões.
// 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]);
}
}
}
Uppercase letters: ABCDEFGHIJKLMNOPQRSTUVWXYZ Lowercase letters: abcdefghijklmnopqrstuvwxyz
Consulte também
Conceitos
Referência
Ponteiro expressões (guia de programação translation from VPE for Csharp)
Tipos de ponteiro (translation from VPE for Csharp Programming guia)
Instrução fixa (referência C#)
stackalloc (translation from VPE for Csharp Reference)