1

2D の長方形配列を考えてみましょう。言う:

int[,] values = new int[len1, len2];

unsafeコード内のすべての値をどのように反復処理できますか?

4

1 に答える 1

2

以下はunsafeコンテキストで機能します。

fixed (int* baseOffset = values)
{
    var offset = baseOffset;
    var count = len1 * len2;
    for (int i = 0; i < count; i++)
    {
        int value = *offset;
        // Do whatever you need to do here
        offset++;
    }
}

配列内の最初の項目へのポインターを取得するには、型が一致する必要があることに注意してください。そのbyte*ため、 として扱いたい がある場合、ステートメントの括弧内でushort*ポインターをキャストすることはできませんが、ブロック内でこれを行うことはできます。fixed

于 2012-10-31T00:55:13.227 に答える