使用boost在memcpy中重叠源块和目标块
Overlapping source and destination blocks in memcpy with boost
有人能解释一下为什么在c++简单代码valgrind上返回这个吗。
第一个问题是boost:regex。当我使用带问号的子模式(用于可选匹配(时,valgrind将返回:
Source and destination overlap in memcpy (line 8)
第二个问题是std::string::erase。
我不知道我做错了什么。
看起来库代码使用的是memcpy
,而为了严格可移植,它应该使用memmove
。
对于编译器的库,如std::string,这可能是可以的,因为代码不必可移植到其他编译器,并且可以使用有关特定实现如何工作的知识。
有了boost库,你可能必须相信他们也知道自己在做什么。该库有许多针对不同编译器的配置,可能也使用特定的g++扩展。
相关文章:
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- Ardunio UNO解决了多个重叠的定时器循环
- C++A*算法并不总是在路径中具有目标节点
- 在c++中检查长方体是否尽可能快地重叠(无迭代)
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 为测试目标创建具有不同源文件夹的文件
- 算术序列与区间的最大重叠
- 使用源向量作为目标
- 是否可以用C++/WinRT将windows 10.0.14393作为目标
- 在 CMake 中为每个目标设置编译器/链接器标志
- qmake:检测目标位宽(32 位或 64 位)
- 如何在 CMake 中对目标依赖项进行分组?
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 如何为包含头文件的目标编写生成文件?
- 按顺序声明的字符数组重叠
- 线性优化目标函数中的绝对值
- 拆分重叠段
- 制作文件:没有规则来制定目标:如何设置正确的规则?
- 字符串函数在目标C++上运行时C++返回空
- 使用boost在memcpy中重叠源块和目标块