title: Strange Behaviour of Unsafe.InitBlockUnaligned
body: <p>So I am trying to fill a block of memory using <code>Unsafe.InitBlockUnaligned</code>, unfortunately it doesn't work as expected.
  instead of it filling my memory block with the value I specified, it uses an entirely different value. can anyone help out please?</p>
  
  <pre><code>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&lt;uint&gt;());
              Console.WriteLine(String.Join(", ", kim));
          }
      }
  }
  </code></pre>