字符数组强制转化为结构体
数据类型:
struct TalkFrame
{
char cFlag[16];
unsigned __int32 iCom;
unsigned __int32 iLen;
};
char buffer[32];
memset(buffer,0,32);
struct TalkFrame *frame;
frame = (struct TalkFrame *)buffer;
sprintf(frame->cFlag,"TalkFrame");
frame->iLen = 0;
frame->iCom = TC_NORMAL_TALK;
考虑字节对齐后 TalkFrame 的大小是 32*3=96
char buffer[32];的大小是32
那么frame = (struct TalkFrame *)buffer;
frame指向的是的内存空间是32位的
(buffer的内存空间小于 frame 需要的内存空间 )
如果指向
frame->iLen = 0;
frame->iCom = TC_NORMAL_TALK;
这样不就越界了(超出buffer指向的内存空间)吗?
...全文
相关推荐
华南理工大学《C++》期末考试复习试卷资料.pdf
结构体与数组:结构体的定义和使用,包括如何访问结构体数组的元素,以及结构体指针的运用。11.
级C++试卷(含答案).doc
C++源代码必须经过编译器处理才能转化为计算机可以执行的目标代码。编译器负责检查语法错误,并将源代码转换成机器语言。### 3.
整形数组与字符数组相互转换
序列化与反序列化:将整形数组转换为字符数组的过程可以看作是序列化,即将结构化的数据转化为字节流,方便存储或传输。反之,将字符数组还原为整形数组是反序列化,即从字节流中恢复原始数据结构。4.
c语言计算机二级考试大纲
**指针与字符串** - 字符串通常被当作字符数组处理。 - 指针可以用来遍历字符串或进行字符串操作。### 八、结构体1.
结构体指针
结构体指针则是指向结构体变量的指针,它在内存管理、函数参数传递以及数据结构操作中发挥着重要作用。本题涉及到的知识点包括结构体的大小计算、指针运算以及不同数据类型指针的偏移规则。


网络编程
