C# 使用指针将不同值类型赋值到字节数组中

Posted yyjackma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 使用指针将不同值类型赋值到字节数组中相关的知识,希望对你有一定的参考价值。

C#指针操作字节数组

Demo(以添加short类型的值为例):

//bytes:目标字节数组; offset:目标在字节数组的位置; value:添加的类型值public static unsafe void WriteInt16ToBytes(byte[] bytes, int offset, short value)
{
    fixed (byte* ptr = bytes)
    {
        *((short*)(ptr + offset)) = value;
    }
}

实现思路:

1.创建指向字节数组bytes第一个字节的指针

2.通过增加偏移量offset,找到存放value值的内存区域

3.将该区域转换为short(两个字节)大小

4.将value复制到该区域,完成short类型变量向bytes的赋值

以上是关于C# 使用指针将不同值类型赋值到字节数组中的主要内容,如果未能解决你的问题,请参考以下文章

将字节数组从 c++ 传递到 c# 程序集都有哪些不同的方法?

c语言char和int可以互相赋值,但指针不能赋值,char *和int *不能直接赋值,为啥呢?谢谢

在一行 C# 中为公共字节数组赋值

C#,通过字符串获取控件以及给控件赋值

C# 和 Java 中的十六进制到字节数组给出不同的结果

c#拷贝数组指针中的元素到变量中