我正在尝试存储一个定期更新的 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/