c++ - 将 char 指针存储到容器中
问题描述
我正在尝试存储char*
定期更新的内容。
我需要将它指向的数据存储到 C++ 中的容器中
我尝试使用char*
向量,但所有元素都指向最后更新的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 本身。
因此,您需要构建一个数据包向量,创建一个新的向量元素并将指向的数据复制到该向量元素中。
因此,假设您有一个 cPacket 类,其构造函数采用 char 指针,那么您可以编写
class cPacket {
public:
cPacket( char* p )
{
// code to copy the data into attributes
...
}
};
std:vector< cPacket > vPacket;
...
vPacket.push_back( cPacket( Packet ) );
或者,如果您的代码的其余部分需要一个指针向量
std::vector< cPacket* > vpPacket;
...
vpPacket.push_back( new cPacket( Packet ) );
推荐阅读
- excel - 基于单元格值的随机颜色(名称列)
- linux - bash 中的星号通配符
- ios - 从 ionic 中的可配置文件中读取后端 url
- sql - 获取其中具有一致数据的所有列的总数
- android - 谷歌地图未在 android 的 TabFragment 中完全显示
- python - 嵌套函数的 Python 作用域
- jenkins - 无法在詹金斯 DSL shell 脚本中创建变量
- tomcat - 将大型内容写入 servlet 响应失败
- .htaccess - GeoIP 的欧盟特定 ISO-1366-1 国家/地区代码
- c# - 如何根据该句子的含义将句子映射到用户声明的方法?