考虑一个二维矩形阵列。说:
int[,] values = new int[len1, len2];
如何在unsafe
代码中遍历它的所有值?
考虑一个二维矩形阵列。说:
int[,] values = new int[len1, len2];
如何在unsafe
代码中遍历它的所有值?
以下工作在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
语句的括号内强制转换指针,尽管您可以在块中执行此操作。