c++ - 在 C++ 中使用 memcmp 在使用 Valgrind 运行时会导致内存泄漏

标签 c++ linux

我使用 memcmp 将 char 指针与空字符串进行比较:

if((0 == memcmp("", pcNewBeginPtr, 1))){
    // do some stuff
}

我能够对此进行比较,但是在运行 Valgrind 时,我收到此错误消息:

Invalid read of size 1 at this line.

最佳答案

令人惊讶的是,您可以阅读文档来了解“无效读取”消息的含义。例如。您没有合法地读取 pcNewBeginPtr 处的内存:它已经被释放,没有有效地初始化为指向 char 缓冲区,指向已经退出的作用域中的局部变量等等......

您可能会阅读其他一些问题:例如here .

关于c++ - 在 C++ 中使用 memcmp 在使用 Valgrind 运行时会导致内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29343153/

相关文章:

c++ - CMake 着色错误和警告

c++ - 自定义异常头文件

php - php 的 crontab 开始了,但有时并没有结束

linux - 从数组中提取元素(bash)

linux - 如何使用 grep 命令搜索多个模式?

c++ - 前进文件指针以跳过文件中的数字

c++ - 树莓派上的 "error: stray\255 in program"

c++ - 如何配置我的项目以生成与平台无关的代码?

linux - Docker 不会将文件从容器复制到主机的/tmp 文件夹

linux - 启动命令,在 10 秒后计算输出行数,然后重新启动它或让它运行