12得票5回答
无法获取托管类型的地址、大小或声明指向托管类型的指针。

我做了相当多的研究,但现在卡在了为什么我仍然会得到这个错误。我有一个具有以下属性的结构体:struct Account { //private attributes private double mBalance; private int mAccountNumber;...

12得票3回答
如何在C#中获取char**?

我需要以以下形式将参数传递给不安全的DllImported函数:[DllImport("third_party.dll")] private static extern unsafe int start(int argc, char** argv); 我假设它是一个字符串数组。但是当我尝试做以...

12得票9回答
将float[]转换为byte[]的最快方法是什么?

我希望能够以最快的方式从 float[] 中获取一个 byte[],而不必遍历整个数组(可能通过转换来完成)。安全代码没问题。谢谢! 我要求的是一个比 float 数组长 4 倍的字节数组(因为每个 float 由 4 个字节组成)。我将把它传递给 BinaryWriter。 编辑: 对...

12得票5回答
C#: 可以将指针类型用作字段吗?

在C#中,可以声明一个有指针类型成员的结构体(或类),像这样:unsafe struct Node { public Node* NextNode; } 使用这种构造方式是否有安全的可能性(啊..暂且忽略那个讽刺的unsafe标志..),我指的是在堆上进行长期存储。据我所知,GC会自由移动...

12得票5回答
C#中的固定语句

我们的一个项目中有类似下面的代码。有人可以用简单易懂的英语解释一下为什么这里需要使用fixed语句吗? class TestClass { int iMyVariable; static void Main() { TestClass oTestCla...

12得票2回答
固定大小的结构体数组类型

如何在C#中声明结构类型的固定大小数组:[StructLayout(LayoutKind.Sequential,Pack=1), Serializable] public unsafe struct MyStruct{ ... } public class MyClass { ...

12得票2回答
将对象从堆中移出

有人尝试将Java对象移出堆吗?我尝试使用序列化、反序列化和使用Unsafe库存储字节数组。但是,由于复杂对象中包含多个对象,这使得该过程变得繁琐。是否有更好的解决方案?

12得票5回答
通过编程裁剪图像的空白边框的简单算法?

目前我正在寻找一种相当快速且在C#/.NET中合理准确的算法来完成以下代码步骤: 将图像加载到内存中。 从位置(0,0)的颜色开始,查找未占用的空间。 裁剪掉这个不必要的区域。 我已经说明了我想要实现的内容: 我的想法是获取(0,0)处像素的颜色,然后通过所有像素进行unsafe...

12得票1回答
指针偏移导致溢出。

以下的结果对我来说毫无意义。看起来是在执行加法或减法之前将负偏移转换为无符号整数。double[] x = new double[1000]; int i = 1; // for the overflow it makes no difference if it is long, int o...

12得票2回答
在并行处理vec时如何安全地或不使用不稳定的功能?

我有一个巨大的向量,希望能够并行加载/处理它,例如在一个线程中加载前十万个索引,在另一个线程中加载下一个索引,以此类推。由于这将是代码中非常关键的部分,我想出了以下不安全的概念验证代码来避免使用Arc和Mutex:let mut data:Vec<u32> = vec![1u32,...