C# Language Pointeurs d'accès au tableau


Exemple

Cet exemple montre comment les pointeurs peuvent être utilisés pour un accès de type C aux tableaux C #.

unsafe
{
    var buffer = new int[1024];
    fixed (int* p = &buffer[0])
    {
        for (var i = 0; i < buffer.Length; i++)
        {
            *(p + i) = i;
        }
    }
}

Le mot-clé unsafe est requis car l'accès au pointeur n'émettra aucune vérification des limites normalement émises lors de l'accès aux tableaux C # de manière régulière.

Le mot-clé fixed indique au compilateur C # d'émettre des instructions pour épingler l'objet d'une manière sûre. L'épinglage est nécessaire pour garantir que le garbage collector ne déplace pas le tableau en mémoire, car cela invaliderait les pointeurs pointant dans le tableau.