C++ C++;导致seg故障的功能错误

C++ C++;导致seg故障的功能错误,c++,c++11,segmentation-fault,C++,C++11,Segmentation Fault,您好,我有这个函数,我正在尝试从中获取值 struct PlayerMoving { int packetType; int netID; float x; float y; int characterState; int plantingTree; float XSpeed; float YSpeed; int punchX; int punchY; int secondnetID; }; 导致分段错误的

您好,我有这个函数,我正在尝试从中获取值

struct PlayerMoving
{
    int packetType;
    int netID;
    float x;
    float y;
    int characterState;
    int plantingTree;
    float XSpeed;
    float YSpeed;
    int punchX;
    int punchY;
    int secondnetID;
};
导致分段错误的原因


PlayerMoving *pMov = unpackPlayerMoving(tankUpdatePacket);
if (pMov->plantingTree == 18) {
   OnPunch(pMov->punchX, pMov->punchY, world, peer, server);
}
else if (pMov->plantingTree == 32) {
    onWrench(world, pMov->punchX, pMov->punchY, peer);
}
else
{
    OnPlace(pMov->punchX, pMov->punchY, pMov->plantingTree, world, peer, server); //here it show segmentation fault
}
delete pMov;
我遇到了一个分割错误,所以我决定用valgrind来看看发生了什么 然后我在SendPacketRaw中看到了分段故障累加器,但我真的不知道为什么会发生这种情况,知道如何解决这个问题吗

这就是瓦尔格林给我的

==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x1189CF: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:152)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x145119: enet_packet_create (in /home/cmd/Desktop/PRC++/server)
==38843==    by 0x118A16: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:154)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x483B7A0: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x14C8D8: enet_malloc (in /home/cmd/Desktop/PRC++/server)
==38843==    by 0x145134: enet_packet_create (in /home/cmd/Desktop/PRC++/server)
==38843==    by 0x118A16: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:154)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x48429FA: memmove (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x118A98: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:158)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x4842BA1: memmove (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x118A98: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:158)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x4842B0E: memmove (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x118A98: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:158)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Invalid read of size 2
==38843==    at 0x4842B30: memmove (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x118A98: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:158)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==38843== 
==38843== 
==38843== Process terminating with default action of signal 11 (SIGSEGV)
==38843==  Access not within mapped region at address 0x0
==38843==    at 0x4842B30: memmove (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x118A98: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:158)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843==  If you believe this happened as a result of a stack
==38843==  overflow in your program's main thread (unlikely but
==38843==  possible), you can try to increase the size of the
==38843==  main thread stack using the --main-stacksize= flag.
==38843==  The main thread stack size used in this run was 8388608.
==38843== 
==38843== HEAP SUMMARY:
==38843==     in use at exit: 11,984,361 bytes in 22,878 blocks
==38843==   total heap usage: 93,823 allocs, 70,945 frees, 29,828,594 bytes allocated
==38843== 
==38843== LEAK SUMMARY:
==38843==    definitely lost: 928 bytes in 3 blocks
==38843==    indirectly lost: 4,940 bytes in 16 blocks
==38843==      possibly lost: 224 bytes in 2 blocks
==38843==    still reachable: 11,978,269 bytes in 22,857 blocks
==38843==         suppressed: 0 bytes in 0 blocks
==38843== Rerun with --leak-check=full to see details of leaked memory
==38843== 
==38843== Use --track-origins=yes to see where uninitialised values come from
==38843== For lists of detected and suppressed errors, rerun with: -s
==38843== ERROR SUMMARY: 36605 errors from 14 contexts (suppressed: 0 from 0)
Segmentation fault (core dumped)
==38843==条件跳转或移动取决于未初始化的值
==38843==at 0x1189CF:SendPacketRaw(int,std::vector,无符号长,void*,_ENetPeer*,int)(utils.cpp:152)
==38843==by0x11e327:Nothing(_ENetPeer*,int,int)(worlds.cpp:405)
==38843==by 0x120B6A:Events::Recieve(\u-ENetHost*,\u-enetpack*,\u-ENetPeer*,std:\u-cx11::basic\u-string)(Events.cpp:342)
==38843==by 0x123D7A:Run()(main.cpp:62)
==38843==by0x123e24:main(main.cpp:87)
==38843== 
==38843==条件跳转或移动取决于未初始化的值
==38843==at 0x145119:enet_数据包_创建(在/home/cmd/Desktop/PRC++/server中)
==38843==by 0x118A16:SendPacketRaw(int,std::vector,无符号长,void*,_ENetPeer*,int)(utils.cpp:154)
==38843==by0x11e327:Nothing(_ENetPeer*,int,int)(worlds.cpp:405)
==38843==by 0x120B6A:Events::Recieve(\u-ENetHost*,\u-enetpack*,\u-ENetPeer*,std:\u-cx11::basic\u-string)(Events.cpp:342)
==38843==by 0x123D7A:Run()(main.cpp:62)
==38843==by0x123e24:main(main.cpp:87)
==38843== 
==38843==条件跳转或移动取决于未初始化的值
==38843==at 0x483B7A0:malloc(在/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so中)
==38843==0x14C8D8:enet_malloc(in/home/cmd/Desktop/PRC++/server)
==38843==by 0x145134:enet_数据包_创建(在/home/cmd/Desktop/PRC++/server中)
==38843==by 0x118A16:SendPacketRaw(int,std::vector,无符号长,void*,_ENetPeer*,int)(utils.cpp:154)
==38843==by0x11e327:Nothing(_ENetPeer*,int,int)(worlds.cpp:405)
==38843==by 0x120B6A:Events::Recieve(\u-ENetHost*,\u-enetpack*,\u-ENetPeer*,std:\u-cx11::basic\u-string)(Events.cpp:342)
==38843==by 0x123D7A:Run()(main.cpp:62)
==38843==by0x123e24:main(main.cpp:87)
==38843== 
==38843==条件跳转或移动取决于未初始化的值
==38843==at 0x48429FA:memmove(在/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so中)
==38843==by 0x118A98:SendPacketRaw(int,std::vector,无符号长,void*,_ENetPeer*,int)(utils.cpp:158)
==38843==by0x11e327:Nothing(_ENetPeer*,int,int)(worlds.cpp:405)
==38843==by 0x120B6A:Events::Recieve(\u-ENetHost*,\u-enetpack*,\u-ENetPeer*,std:\u-cx11::basic\u-string)(Events.cpp:342)
==38843==by 0x123D7A:Run()(main.cpp:62)
==38843==by0x123e24:main(main.cpp:87)
==38843== 
==38843==条件跳转或移动取决于未初始化的值
==38843==at 0x4842BA1:memmove(在/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so中)
==38843==by 0x118A98:SendPacketRaw(int,std::vector,无符号长,void*,_ENetPeer*,int)(utils.cpp:158)
==38843==by0x11e327:Nothing(_ENetPeer*,int,int)(worlds.cpp:405)
==38843==by 0x120B6A:Events::Recieve(\u-ENetHost*,\u-enetpack*,\u-ENetPeer*,std:\u-cx11::basic\u-string)(Events.cpp:342)
==38843==by 0x123D7A:Run()(main.cpp:62)
==38843==by0x123e24:main(main.cpp:87)
==38843== 
==38843==条件跳转或移动取决于未初始化的值
==38843==at 0x4842B0E:memmove(在/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so中)
==38843==by 0x118A98:SendPacketRaw(int,std::vector,无符号长,void*,_ENetPeer*,int)(utils.cpp:158)
==38843==by0x11e327:Nothing(_ENetPeer*,int,int)(worlds.cpp:405)
==38843==by 0x120B6A:Events::Recieve(\u-ENetHost*,\u-enetpack*,\u-ENetPeer*,std:\u-cx11::basic\u-string)(Events.cpp:342)
==38843==by 0x123D7A:Run()(main.cpp:62)
==38843==by0x123e24:main(main.cpp:87)
==38843== 
==38843==大小为2的读取无效
==38843==at 0x4842B30:memmove(在/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so中)
==38843==by 0x118A98:SendPacketRaw(int,std::vector,无符号长,void*,_ENetPeer*,int)(utils.cpp:158)
==38843==by0x11e327:Nothing(_ENetPeer*,int,int)(worlds.cpp:405)
==38843==by 0x120B6A:Events::Recieve(\u-ENetHost*,\u-enetpack*,\u-ENetPeer*,std:\u-cx11::basic\u-string)(Events.cpp:342)
==38843==by 0x123D7A:Run()(main.cpp:62)
==38843==by0x123e24:main(main.cpp:87)
==38843==地址0x0不是堆栈、malloc或(最近)空闲
==38843== 
==38843== 
==38843==进程以信号11(SIGSEGV)的默认动作终止
==38843==访问不在地址0x0的映射区域内
==38843==at 0x4842B30:memmove(在/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so中)
==38843==by 0x118A98:SendPacketRaw(int,std::vector,无符号长,void*,_ENetPeer*,int)(utils.cpp:158)
==38843==by0x11e327:Nothing(_ENetPeer*,int,int)(worlds.cpp:405)
==38843==by 0x120B6A:Events::Recieve(\u-ENetHost*,\u-enetpack*,\u-ENetPeer*,std:\u-cx11::basic\u-string)(Events.cpp:342)
==38843==by 0x123D7A:Run()(main.cpp:62)
==38843==by0x123e24:main(main.cpp:87)
==38843==如果您认为这是由于堆栈导致的
==38843==程序主线程溢出(不太可能,但
==38843==可能),您可以尝试增大
==38843==使用--main stacksize=标志的主线程堆栈。
==38843==此运行中使用的主线程堆栈大小为8388608。
==38843== 
==38843==堆摘要:
==38843==在出口处使用:22878块中的11984361字节
==38843==总堆使用率:93823个allocs,70945个free,29828594个字节分配
==38843== 
==38843==泄漏汇总:
==38843==肯定丢失:3个块中有928个字节
==38843==间接丢失:16个块中有4940字节
==38843==可能丢失:2个块中有224个字节
==38843==r
void Nothing(ENetPeer *peer, int x, int y)
{
    PlayerMoving data;
    data.netID = pinfo(peer)->netID;
    data.packetType = 0x8;
    data.plantingTree = 0;
    data.netID = -1;
    data.x = x;
    data.y = y;
    data.punchX = x;
    data.punchY = y;
    SendPacketRaw(4, packPlayerMoving(&data), 56, 0, peer, ENET_PACKET_FLAG_RELIABLE);
}

PlayerMoving *pMov = unpackPlayerMoving(tankUpdatePacket);
if (pMov->plantingTree == 18) {
   OnPunch(pMov->punchX, pMov->punchY, world, peer, server);
}
else if (pMov->plantingTree == 32) {
    onWrench(world, pMov->punchX, pMov->punchY, peer);
}
else
{
    OnPlace(pMov->punchX, pMov->punchY, pMov->plantingTree, world, peer, server); //here it show segmentation fault
}
delete pMov;
==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x1189CF: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:152)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x145119: enet_packet_create (in /home/cmd/Desktop/PRC++/server)
==38843==    by 0x118A16: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:154)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x483B7A0: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x14C8D8: enet_malloc (in /home/cmd/Desktop/PRC++/server)
==38843==    by 0x145134: enet_packet_create (in /home/cmd/Desktop/PRC++/server)
==38843==    by 0x118A16: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:154)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x48429FA: memmove (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x118A98: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:158)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x4842BA1: memmove (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x118A98: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:158)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Conditional jump or move depends on uninitialised value(s)
==38843==    at 0x4842B0E: memmove (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x118A98: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:158)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843== 
==38843== Invalid read of size 2
==38843==    at 0x4842B30: memmove (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x118A98: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:158)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==38843== 
==38843== 
==38843== Process terminating with default action of signal 11 (SIGSEGV)
==38843==  Access not within mapped region at address 0x0
==38843==    at 0x4842B30: memmove (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==38843==    by 0x118A98: SendPacketRaw(int, std::vector<unsigned char, std::allocator<unsigned char> >, unsigned long, void*, _ENetPeer*, int) (utils.cpp:158)
==38843==    by 0x11E327: Nothing(_ENetPeer*, int, int) (worlds.cpp:405)
==38843==    by 0x120B6A: Events::Recieve(_ENetHost*, _ENetPacket*, _ENetPeer*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (events.cpp:342)
==38843==    by 0x123D7A: Run() (main.cpp:62)
==38843==    by 0x123E24: main (main.cpp:87)
==38843==  If you believe this happened as a result of a stack
==38843==  overflow in your program's main thread (unlikely but
==38843==  possible), you can try to increase the size of the
==38843==  main thread stack using the --main-stacksize= flag.
==38843==  The main thread stack size used in this run was 8388608.
==38843== 
==38843== HEAP SUMMARY:
==38843==     in use at exit: 11,984,361 bytes in 22,878 blocks
==38843==   total heap usage: 93,823 allocs, 70,945 frees, 29,828,594 bytes allocated
==38843== 
==38843== LEAK SUMMARY:
==38843==    definitely lost: 928 bytes in 3 blocks
==38843==    indirectly lost: 4,940 bytes in 16 blocks
==38843==      possibly lost: 224 bytes in 2 blocks
==38843==    still reachable: 11,978,269 bytes in 22,857 blocks
==38843==         suppressed: 0 bytes in 0 blocks
==38843== Rerun with --leak-check=full to see details of leaked memory
==38843== 
==38843== Use --track-origins=yes to see where uninitialised values come from
==38843== For lists of detected and suppressed errors, rerun with: -s
==38843== ERROR SUMMARY: 36605 errors from 14 contexts (suppressed: 0 from 0)
Segmentation fault (core dumped)
SendPacketRaw(4, packPlayerMoving(&data), 56, 0, peer, ENET_PACKET_FLAG_RELIABLE);
                                           //^^
memcpy((char *)p->data + packetDataSize + 4, a4, *((DWORD *)&packetData[13]));