【发布时间】:2014-11-06 02:30:52
【问题描述】:
这类似于以下 SO 问题:
cast-void-pointer-to-integer-array
c-pointers-pointing-to-an-array-of-fixed-size
但是,不同之处在于我想在 C# 中使用“不安全”功能来实现这一点,通过它我们可以使用指针。
例如
以下代码在 C 中工作:
int (*arr)[10] = (int (*)[10]) ptr;
其中'ptr'是空指针。这在 C# 中如何实现?
【问题讨论】:
-
如何在 C# 中获取指针?您可以以
int*开头,也可以这样接收。如果您收到void*,则必须对其进行强制转换才能使用它。 -
你能解释一下你为什么要这样做吗?另外,我相信 C# 类型系统没有固定大小的数组。
-
@xxbbcc 和:我知道我可以将 void 指针转换为 int 指针,但是,我希望将其转换为固定长度的数组。当有一些标准的第三方库函数将固定长度的数组作为输入时,这有时是必要的。例如无效标准函数(int [])。我不能只传递一个整数指针给这个函数。
标签: c# pointers casting unsafe