Ejemplo n.º 1
0
        public unsafe void MemmoveOverlappedMemory2()
        {
            byte[] data = new byte[100];
            for (var i = 0; i < data.Length; i++)
            {
                data[i] = (byte)(i + 10);
            }

            fixed(byte *destPtr = &data[1], srcPtr = data)
            {
                TargetClass.__Memmove(destPtr, srcPtr, 5);
            }

            CollectionAssert.AreNotEquivalent(
                new [] { 10, 10, 11, 12, 13, 14, 16 },
                data.Take(7).ToArray());
        }
Ejemplo n.º 2
0
        public unsafe void MemmoveNonOverlappedMemory()
        {
            byte[] src = new byte[10];
            for (var i = 0; i < src.Length; i++)
            {
                src[i] = (byte)(i + 10);
            }

            byte[] dest = new byte[100];
            dest[6] = 255;
            fixed(byte *destPtr = dest, srcPtr = src)
            {
                TargetClass.__Memmove(destPtr, srcPtr, 5);
            }

            CollectionAssert.AreNotEquivalent(
                new[] { 10, 11, 12, 13, 14, 0 },
                dest.Take(6).ToArray());
        }