获得一个不安全的固定指针指向矩形数组的开头

时间:2012-10-31 00:55:13

标签: c# .net unsafe fixed-statement multidimensional-array

考虑2D矩形阵列。说:

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

如何在unsafe代码中迭代所有值?

1 个答案:

答案 0 :(得分:1)

以下内容适用于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语句的括号,尽管您可以在块中执行此操作。