У меня есть функция, которая хочет получить sbyte * буфер, как создать такой в C # с нуля и из существующего байта []?
// 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 }
Приведения к массиву и последующего приведения к байту [] будет достаточно.
byte [] unsigned = {0, 1, 2};
sbyte [] подписано = (sbyte []) (Массив) без знака;