当前位置:首页C# > 正文

C#中的byte*的复制

作者:野牛程序员:2023-12-25 14:30:27C#阅读 2646

在C#中,可以使用指针来进行byte*的复制操作。以下是一个简单的示例代码,展示了如何使用指针来复制字节数组:

using System;

class Program
{
    static unsafe void Main()
    {
        // 原始字节数组
        byte[] sourceArray = { 1, 2, 3, 4, 5 };

        // 创建目标字节数组,长度与源数组相同
        byte[] destinationArray = new byte[sourceArray.Length];

        // 使用 fixed 关键字固定源数组,获取指向源数组首元素的指针
        fixed (byte* sourcePtr = sourceArray)
        {
            // 使用 fixed 关键字固定目标数组,获取指向目标数组首元素的指针
            fixed (byte* destinationPtr = destinationArray)
            {
                // 使用 memcpy 进行字节数组的复制
                Buffer.MemoryCopy(sourcePtr, destinationPtr, sourceArray.Length, sourceArray.Length);
            }
        }

        // 打印复制后的目标数组内容
        Console.WriteLine("复制后的目标数组:");
        foreach (byte value in destinationArray)
        {
            Console.Write(value + " ");
        }
    }
}

上述代码使用 fixed 关键字固定源数组和目标数组,然后使用 Buffer.MemoryCopy 方法进行字节数组的复制。请注意,使用指针和不安全代码可能导致内存错误,因此在使用时要小心谨慎。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击