我有一个三维数组,我想IntPtr
在其上点所以在这里我也..can有人告诉我,如果它是正确的或不...指向3D阵列
fixed (Int16* mypointer = &myvolume[0, 0, 0])
{
//then i cast mypointer as IntPtr
}
通知, myvolume的尺寸是200 x 100 x 100
我有一个三维数组,我想IntPtr
在其上点所以在这里我也..can有人告诉我,如果它是正确的或不...指向3D阵列
fixed (Int16* mypointer = &myvolume[0, 0, 0])
{
//then i cast mypointer as IntPtr
}
通知, myvolume的尺寸是200 x 100 x 100
你确定你真的想要的是一个不安全指针吗?在C#中使用这样的指针是非常罕见的。
埃里克利珀最近写一个simple class that offers some of the behavior of pointers,而不诉诸不安全的代码。您可以考虑将其扩展到您的多维数组。
感谢克里斯,事实上,我现在使用的是需要一个指向我的容积,这就是为什么我使用指针vtk的一些算法,我就检查这篇文章,谢谢你的努力 – 2011-03-15 13:15:50
这并不像你想象的那么难得。指针算法是迭代这种数组的最快速方式,您会在性能关键型应用程序中找到很多这种类型的代码。 – MattDavey 2011-03-15 13:41:32
@MattDavey我同意这里有它的地方,并且自己使用它来处理图像。危险之处在于,新的C#中“高性能”计算的程序员会直接跳到指针而不尝试/分析标准C#解决方案。 – 2011-03-15 13:53:00
你有没有试过看它是否有效? – thecoop 2011-03-15 12:40:38
你确实明白在退出'fixed'块后IntPtr将无效,对吗? – 2011-03-15 12:49:12
是的,我知道,这就是为什么在插入我的代码的固定块里面,谢谢你的关心 – 2011-03-15 13:14:18