新手一小段代码看不懂请大家指点一下解决思路
新手一小段代码看不懂请大家指点一下代码如下:C/C++ codevoid putDword(char *packet, DWORD v, int &pos)
新手一小段代码看不懂请大家指点一下
代码如下:
C/C++ codevoid putDword(char *packet, DWORD v, int &pos){ *(DWORD*)(packet + pos) = v; pos += sizeof(DWORD);}
问题1是 *(DWORD*)(packet + pos)这部分到底是什么
packet + pos我的理解是移动指针改变地址
(DWORD*)我的理解是转换为这个类型的
然后在前面在加一个*是地址吗?
如果是地址那么为什么后面还有一个=v这又是干什么
新手学习c++请大家指点一下
[解决办法]将变量v的值赋到地址 packet + pos 处,然后 pos 位置向后偏移 DWORD 字节。
应该是编码用
[解决办法] char pack[128] = "aaaaaaaaaaaaaaaaaaaa";
int pos = 4;
int v = 0x62626262; //0x62==98,为b的ASCII码,一个DWORD四个字节
*(DWORD*)(pack + pos) = v; //这句执行完后 pack[128] = "aaaabbbbaaaaaaaaaaaa";