0
所以我已经设置了像这样复制起始偏移结构的开始
编辑的结构:PLAYERCOORDS = 1,它是在我的代码开头定义
struct PLAYERCOORDINATESSTRUCT
{
int type, x, y;
bool isalive;
bool isconnected;
PLAYERCOORDINATESSTRUCT(int customx, int customy, bool customisalive, bool customisconnected)
{
type=(PLAYERCOORDS);
x = customx;
y = customy;
isalive = customisalive;
isconnected = customisconnected;
}
PLAYERCOORDINATESSTRUCT()
{
type=(PLAYERCOORDS);
}
};
char* bufferwithstructdata = new char[sizeof(PLAYERCOORDINATESSTRUCT)-4];
//-4 since it's missing first int
PLAYERCOORDINATESSTRUCT testdata;
memcpy(&testdata,bufferwithstructdata,sizeof(PLAYERCOORDINATESSTRUCT)-4)
我有一个char缓冲区,其中包含所有这些结构的信息,除了int类型(结构的前4个字节)
我想弄清楚如何正确地memcpy这与一个偏移源。 我发现我需要从结构地址开始的4个字节以int x开头。 但是,我发现当我试图在地址上添加4(& testdata + 4)时,它将40添加到地址!任何人都可以知道如何将memcpy与结构的4字节偏移量相关联,或者我可以将地址偏移4个字节而不是每次10个。
非常感谢您的阅读。
谢谢你这么多CrazyCasta!我很困难XD – user2980207
[offsetof](http://en.cppreference.com/w/cpp/types/offsetof)可能会使这段代码更加便携(并且更易于阅读)。 – Lalaland