任何人都可以解释为什么c ++ simple code valgrind返回this。
第一个问题是提升:正则表达式。当我使用带有问号的子模式时(对于可选匹配),valgrind将返回:
Source and destination overlap in memcpy (line 8)
第二个问题是std :: string :: erase。
我不知道我做错了什么。
答案 0 :(得分:1)
似乎库代码正在使用memcpy
,为了严格移植,它应该使用memmove
。
对于编译器的库,比如std :: string,这可能没问题,因为该代码不必移植到其他编译器,并且可以使用有关特定实现如何工作的知识。
使用boost库,您可能必须相信他们也知道他们在做什么。该库为不同的编译器提供了许多配置,可能也使用特定的g ++扩展。