结构体里加一个0字节的数组成员是做什么用的?
struct MyStruct
{
int cnt;
char chDat[0];
}
后面这个char chDat通常是干嘛用的呢?在哪里用的到?
相关推荐
结构体中数组成员赋值
用实例教你给结构体中数组成员赋值
C#中结构体struct和字节数组Byte的之间的转换函数
在tcp通讯的时候经常会遇到 struct传输的情况。但是C#中tcp只能传送byte[]类型,于是struct与byte相互转化就成为了一个麻烦的事情,这里提供两个方法。
C#中结构体定义并转换字节数组详解
最近的项目在做socket通信报文解析的时候,用到了结构体与字节数组的转换;由于客户端采用C++开发,服务端采用C#开发,所以双方必须保证各自定义结构体成员类型和长度一致才能保证报文解析的正确性,这一点非常重要。 首先是结构体定义,一些基本的数据类型,C#与C++都是可以匹配的: [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)] public struct Head { public ushort proMagic; //包起始标记:固定0
C#结构体和C++字节数组的转换
在写C#TCP通信程序时,发送数据时,只能发送byte数组,处理起来比较麻烦不说,如果是和VC6.0等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个结构体,而在C#却不能直接把byte数组转换为结构体,要在C#中发送结构体,可以按此方法实现。
C/C++结构体内尾部0字节字符数组技巧
最近工作,学习到一个有意义的C/C++结构体或类的操作技巧,看看如下结构体的定义//设置字节对齐为1,来反应结构体的真实大小#pragma pack(push,1)struct _pack_1{ //cLen指明cmd指向的缓冲区大小 int cLen; //在vc中不可以为0,那么设置为1; char cmd[0];};struct _pack_2{


