[英]How to turn byte[] into sbyte* in C#?
我有一个函数想要接收sbyte * buffer如何在C#中从头开始和从现有的byte []创建这样的函数?
// Allocate a new buffer (skip this if you already have one)
byte[] buffer = new byte[256];
unsafe
{
// The "fixed" statement tells the runtime to keep the array in the same
// place in memory (relocating it would make the pointer invalid)
fixed (byte* ptr_byte = &buffer[0])
{
// Cast the pointer to sbyte*
sbyte* ptr_sbyte = (sbyte*) ptr_byte;
// Do your stuff here
}
// The end of the "fixed" block tells the runtime that the original array
// is available for relocation and/or garbage collection again
}
转换为Array然后转换为byte []就足够了。
byte [] unsigned = {0,1,2};
sbyte [] signed =(sbyte [])(Array)unsigned;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.