VS-C++ 系列:所有相关C++文章链接.
VS-C# 系列:所有相关C#文章链接.
bat 系列:所有相关bat文章链接.
OpenCV 系列:所有相关OpenCV文章链接.


Keil 系列:所有相关文章链接
所有内容均以最小系统调试成功;逐步提供低分源码工程下载
保证每行代码都经过验证!
如有疑惑,欢迎留言,看见即回;祝好__by Dxg_LC

序言:
1、以上链接为方便整理查看资料用;伴随博文发布更新,如果有不正确处,感谢指正
2、因本人能力有限若有不正确之处或者相关超链接失效,请于相关文章内提醒@博主;灰常感谢
3、友情提醒1,勿要《一支烟 + 一杯茶 == 一坐一下午》 身体重要,革命本钱;
4、友情提醒2,多喝热水;
5、友情提醒3,听媳妇话+多点时间陪家人;

1、

[StructLayoutAttribute(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=1)]
struct TestStruct
{public int a;public int b;public int c;    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]public string str;[MarshalAs(UnmanagedType.ByValArray, SizeConst = 25)]public int[] ArrByte;[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]public int[] ArrInt;
}
 <summary>
/// 结构体转byte数组
/// </summary>
/// <param name="structObj">要转换的结构体</param>
/// <returns>转换后的byte数组</returns>
public static byte[] StructToBytes(object structObj)
{int size = Marshal.SizeOf(structObj);byte[] bytes = new byte[size];IntPtr structPtr = Marshal.AllocHGlobal(size);//将结构体拷到分配好的内存空间Marshal.StructureToPtr(structObj, structPtr, false);//从内存空间拷到byte数组Marshal.Copy(structPtr, bytes, 0, size);//释放内存空间Marshal.FreeHGlobal(structPtr);return bytes;
}
/// <summary>
/// byte数组转结构体
/// </summary>
/// <param name="bytes">byte数组</param>
/// <param name="type">结构体类型</param>
/// <returns>转换后的结构体</returns>
public static object BytesToStuct(byte[] bytes,Type type)
{int size = Marshal.SizeOf(type);if (size > bytes.Length) return null;//分配结构体大小的内存空间IntPtr structPtr = Marshal.AllocHGlobal(size);//将byte数组拷到分配好的内存空间Marshal.Copy(bytes,0,structPtr,size);//将内存空间转换为目标结构体object obj = Marshal.PtrToStructure(structPtr, type);Marshal.FreeHGlobal(structPtr);return obj;
}

Dxg-原创出品,如需转载,请注明出处;

欢迎收藏,点赞;"一键三联"走起,LOL

C# 结构体转byte数组 结构体转byte[] 结构体、byte数组互转相关推荐

  1. 【C语言指针】 指针+-整数、指针-指针、解引用、指针数组、二级指针、结构体声明、初始化、传参

    目录 一.指针 1.指针是什么 1.1.一个单元1个字节 2.指针和指针类型 2.1.指针类型的意义 ① 解引用 ② + -整数 例:把每个整形里放1 每个字节里放1 总结: 3.野指针 3.1.野指 ...

  2. c语言用数组直接填充结构体,C语言第11题:结构体数组的定义与使用 + 结构体数组排序...

    C语言第11题:结构体数组的定义与使用 + 结构体数组排序 C语言第11题:结构体数组的定义与使用 + 结构体数组排序 注意: 一下赋值是不能使用的 但是在结构体中是可以直接进行赋值操作的 st[1] ...

  3. 一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

     打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h> void main(void) { int a[ ...

  4. golang json转结构体中嵌套多个数组_ElasticSearch第六篇:复合数据类型-数组,对象...

    在ElasticSearch中,使用JSON结构来存储数据,一个Key/Value对是JSON的一个字段,而Value可以是基础数据类型,也可以是数组,文档(也叫对象),或文档数组,因此,每个JSON ...

  5. 【精华文】C语言结构体特殊情况分析:结构体指针 / 基本数据类型指针,指向其他结构体

    参考链接:Structure pointer pointing to different structure instance 注:可以查看此篇的问题和唯一的回复,那是相对正确的,不要看comment ...

  6. Go 学习笔记(14)— 结构体定义、实例化、初始化、匿名结构体、结构体访问、结构体作为形参、结构体指针

    Go 语言中没有 "类" 的概念,也不支持 "类" 的继承等面向对象的概念.Go 语言不仅认为结构体能拥有方法,且每种自定义类型也可以拥有自己的方法. 1. 结 ...

  7. 【C 语言】结构体 ( 结构体中嵌套二级指针 | 为 结构体内的二级指针成员 分配内存 | 释放 结构体内的二级指针成员 内存 )

    文章目录 一.结构体中嵌套二级指针 1.结构体中嵌套二级指针 类型声明 2.为 结构体内的二级指针成员 分配内存 3.释放 结构体内的二级指针成员 内存 二.完整代码示例 一.结构体中嵌套二级指针 1 ...

  8. C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?

    C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题? 问题1:结构体指针最开始怎么分配内存?用sizeof()是不能确定大小的. 问题2:给结构体变量分配之后,是否还要 ...

  9. c 定义结构体时提示应输入声明_C语言结构体的坑很多,这6大方法千万要记住!...

    本文福利在文末! C语言可谓是编程界的传奇语言,历经几十年,依然排名前列. 本文主要说的是C语言中的结构体,结构体是C语言中重要的一部分内容,也是C语言中常用的一种数据结构. 一.关于结构体在C语言中 ...

  10. c语言怎么判定结构体有无数据,C语言中什么是结构体,怎么定义结构体。

    为什么要用结构体? 没有结构体之前,C语言中,数据的组织依靠:变量+数组.最初最简单的时候,只需要使用基本数据类型来定义单个变量,需要几个就定义几个,后来有时候需要很多意义相关的变量这时候数组出现了. ...

最新文章

  1. 文本挖掘预处理流程总结(2)— 英文
  2. java scanner怎么用_Java Scanner delimiter()用法及代码示例
  3. oracle 数据库的非指令备份方法
  4. ArcGIS特殊标注效果的简单实现
  5. 【模拟】交换(jzoj 1518)
  6. nanotime java 博客园_System.nanoTime (计时工具类)
  7. apache 部署python3_centos7.6+python3+apache2.4+django2.1.2网站部署总结
  8. Oracle 存储过程+JOB初学
  9. C#语言开发环境的搭建
  10. 计算机实战项目之 [含论文+任务书+中期检查表+答辩PPT+源码等]基于javaweb大学生助学贷款管理系统
  11. msf与cs互传,msf与cs建立frp穿透
  12. 视频去水印 java_用java给视频水印LOGO
  13. 简述网卡的作用和工作原理_网卡的功能和工作原理(1)
  14. 秦九韶算法如何应用到计算机,秦九韶算法
  15. Heli Track
  16. 《淘宝网开店 拍摄 修图 设计 装修 实战150招》导读
  17. SEM营销推广策略和优化,做好其实并不难!
  18. solidworks显示无法连接到服务器,SOLIDWORKS Electrical解决方法:无法连接协同服务器...
  19. matlab2017b怎么进行sil测试,用 SIL 和 PIL 仿真测试生成的代码
  20. (转)KVAudioStreamer - 基于AudioToolBox的开源音频流媒体播放器

热门文章

  1. ssh Permission denied (publickey,password).
  2. 关于call()的this指向研究
  3. 浅谈堆(2016-12-31 09:59)错误更改
  4. JSP九大内置对象详解
  5. C语言返回值深入研究
  6. nginx 配置入门 进行跨域
  7. ThinkPhp报错:thinkphp\library\think\Template.php Line(1243) template not exists:...test\...\index.html
  8. Git从远程主分支切换出一个开发分支
  9. 全网首发:JDK绘制文字:五、字体上下文产生流程
  10. QQ浏览器11版,中文输入法定位错误