【问题标题】:Getting an unsafe fixed pointer to the start of a rectangular array获取指向矩形数组开头的不安全固定指针
【发布时间】:2012-10-31 00:55:13
【问题描述】:

考虑一个二维矩形阵列。说:

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

如何遍历unsafe 代码中的所有值?

【问题讨论】:

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


    【解决方案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语句的括号内转换指针,尽管你可以在块中这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 2017-06-26
      • 2013-06-10
      相关资源
      最近更新 更多