gpt4 book ai didi

c++ - 将字符指针存储到容器中

转载 作者:行者123 更新时间:2023-11-27 23:44:09 25 4
gpt4 key购买 nike

我正在尝试存储一个定期更新的 char*

我需要将它指向的数据存储到 C++ 中的容器中

我尝试使用 char* vector 但所有元素都指向最后更新的 char*

这是我的代码:

std::vector<const char*>Packets;
char* Packet;
void __declspec (naked) RecvCaller()
{
__asm mov ecx, [ebp + 0x08]
__asm mov Packet, ecx
Packets.push_back(Packet);
__asm jmp dwJmpBack
}

我怎样才能做到这一点?

最佳答案

我认为您不想存储指向 Packet 的指针,而是想存储 Packet 本身。

因此,您需要构造一个数据包 vector ,创建一个新的 vector 元素并将指向的数据复制到 vector 元素中。

所以,假设你有一个 cPacket 类,它的构造函数接受一个 char 指针,那么你可以这样写

class cPacket {
public:
cPacket( char* p )
{
// code to copy the data into attributes
...
}
};


std:vector< cPacket > vPacket;

...

vPacket.push_back( cPacket( Packet ) );

或者,如果您的其余代码需要一个指针 vector

std::vector< cPacket* > vpPacket;

...

vpPacket.push_back( new cPacket( Packet ) );

关于c++ - 将字符指针存储到容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52022027/

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