gpt4 book ai didi

c++ - 通过 UDP 套接字发送结构 memcopy C++

转载 作者:行者123 更新时间:2023-11-28 03:25:29 25 4
gpt4 key购买 nike

我正在编写一个混合程序,当发生更改(添加新子弹、添加新敌人、删除敌人或子弹)时,该程序将包含 Sprite vector 的结构从服务器发送到客户端。该程序经常将几个敌人添加到结构中的 vector 。

结构的发送和接收似乎工作正常,但是当我尝试将结构 memcopy 到客户端程序中时,程序崩溃了。我不确定是否必须重新调整结构的大小或如何执行此操作,或者是否有其他解决方案。

这是我的结构:

struct map{ 
Player Player1;//DECLARE Player SPRITE

vector<Bullet> Bullets;

vector<Enemy*> Enemies;

}Map;
char Buffer[100];

这是我在收到结构后使用的功能:

memcpy(&Map, Buffer, sizeof(Buffer));
MessageBox (NULL, "Memcopied", "HelloMsg", MB_OK);

如果有任何帮助,我将不胜感激,谢谢

最佳答案

看起来 Player 和/或 vector 不仅在堆栈上,而且它们自己还指向其他地方,比如在堆上以存储您的所有信息。因此,一旦您解压消息,这些指针就会悬空。您应该尝试设计自己的数据格式,其中所有信息都整齐地放置在内存中。

关于c++ - 通过 UDP 套接字发送结构 memcopy C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com