Итак, я пытаюсь заполнить блок памяти с помощью Unsafe.InitBlockUnaligned
, к сожалению, он не работает должным образом. вместо того, чтобы заполнять блок памяти указанным мною значением, он использует совершенно другое значение. кто-нибудь может помочь, пожалуйста?
using System;
using System.Runtime.CompilerServices;
namespace Demo
{
public class Class1
{
internal static unsafe void MemSet(void* dest, byte value, int byteCount)
{
Unsafe.InitBlockUnaligned(dest, value, (uint) byteCount);
}
public static unsafe void Main()
{
uint[] kim = new uint[10];
kim[0] = 213;
kim[1] = 213;
kim[2] = 213;
byte val = 50;
MemSet((byte*) (uint*) Unsafe.AsPointer(ref kim[0]), val, 3 * Unsafe.SizeOf<uint>());
Console.WriteLine(String.Join(", ", kim));
}
}
}