当前位置: 首页 > news >正文

C# byte[] 如何转换成byte*


目标:将byte[]转成byte*以方便使用memcpy

    [DllImport("kernel32.dll", EntryPoint = "RtlCopyMemory", CharSet = CharSet.Ansi)]
        public extern static long CopyMemory(IntPtr dest, IntPtr source, int size);

      private void butTemp_Click(object sender, EventArgs e)
        {
            unsafe
            {
                byte[] by1 = new byte[4] { 1, 2, 3,4 };
                IntPtr tempMemoryPointer = Marshal.AllocHGlobal(4);   
                fixed (byte* converted = by1)
                {
                    CopyMemory(tempMemoryPointer, new IntPtr(converted), 4);
                }
                byte* p1 = (byte*)tempMemoryPointer.ToPointer();
                //此时p[0]到p[3]分别为: 1 2 3 4
            }
        }


扩展目标:取int的地址以使用memcpy


private void butTemp_Click(object sender, EventArgs e)
        {
            unsafe
            {
                int iTmp = 0x11223344;
                IntPtr tempMemoryPointer = Marshal.AllocHGlobal(4);
                int* converted = &iTmp;
                CopyMemory(tempMemoryPointer, new IntPtr(converted), 4);
                byte* p1 = (byte*)tempMemoryPointer.ToPointer();
                //此时p[0]到p[3]分别为: 0x44 0x33 0x22 0x11
            }
        }

测试环境

win7 + VS2022

http://www.lryc.cn/news/167941.html

相关文章:

  • MySQL与Oracle的分页
  • git基本手册
  • 每日一题(两数相加)
  • 恒运资本:沪指震荡涨0.28%,医药板块强势拉升,金融等板块上扬
  • 【计算机网络】Tcp详解
  • 最简单的laravel不使用任何扩展导出csv
  • Android studio 断点调试、日志断点
  • 服务器数据恢复-热备盘同步过程中硬盘离线的RAID5数据恢复案例
  • Python 使用input获取用户输入
  • Python 可迭代对象、迭代器、生成器
  • HTML的有序列表、无序列表、自定义列表
  • 银河麒麟安装Docker-国产化-九五小庞
  • 数据库与身份认证
  • LabVIEW开发锅炉汽包水位的监督控制和模拟
  • 2023-简单点-树莓派安装ncnn框架
  • Docker核心原理与实操
  • 虚幻引擎 UE5 增强输入系统
  • Mac 安装软件各种报错解决方案
  • leetcode做题笔记142. 环形链表 II
  • DuDuTalk:4G语音工牌,如何实现家庭上门维修服务过程的智能化管理?
  • Mybatis常见面试题总结
  • 数字IC设计之时序分析基础概念汇总
  • 1.centos7安装docker
  • 基于elasticsearch-8.8.2 kibana-8.8.2 搭建一个文搜图系统demo
  • 第26节-PhotoShop基础课程-形状工具组-画板
  • 第一次课,通过进程信息和服务信息识别当前计算机运行程序(预习版)
  • ChatGPT 或其它 AI,能用在文书创作上吗?
  • Java中锁的分类
  • centos安装flink,通过windows访问webui
  • 如何让两台手机相互远程控制?