c++ - memcpy 和 std 组件,例如 map : runtime failer

标签 c++ c

我有一个旧的 C 库,我尝试修改它。有这样一行:

memcpy(&m_agents[idx].params, params, sizeof(dtCrowdAgentParams));

当然,C stule pod 之类的值和结构也会被复制。但我尝试添加到 params.some_struct.some_inner_map_field std::map 并且它没有在 memcpy 上初始化。

所以我想知道如何复制我的 map 以使其保持活力? (如果可能的话,不扩展 params 和 params.some_struct 的方法)

最佳答案

我需要查看结构的完整定义才能确定,但​​这应该可行:

m_agents[idx].params = *params;

对于 POD 类型,它将执行与 memcpy 相同的操作。对于非 POD 类型,它将调用它们的赋值运算符。

关于c++ - memcpy 和 std 组件,例如 map : runtime failer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15616099/

相关文章:

c++ - 将 HTTP header 添加到 Windows 上的所有传出数据包?

python - 使用 SWIG 将 numpy 数组元素(int)传递给 c++ int

c - 为什么 printf 函数不打印我希望它打印的列表的值?

c - pthreads 不能正常工作

c - 链接器错误 : what could be going on?

clock() 在某些平台上不工作

c++ - 为什么调用复制构造函数而不是 move 构造函数?

c++ - C++ 中的俄罗斯方 block 对象模型

c++ - 如何提取__VA_ARGS__?

c - 显示十个字符后暂停程序