gpt4 book ai didi

c++ - Purify 在类/结构填充上的 Uninit 内存读取 (UMR)

转载 作者:太空狗 更新时间:2023-10-29 23:20:10 27 4
gpt4 key购买 nike

我遇到了使用 Purify 填充类/结构的非常烦人的副作用.例如

struct something {
int field1;
char field2;
};

/* ... */

struct something smth, smth2;
smth.field1 = 1;
smth.field2 = 'A';

smth2 = smth;

最后一行极有可能触发 UMR 警告,指出已访问 3 个字节的初始化内存。这显然是一个误报:结构的最后三个字节中没有用户数据,它只是一个填充。

警告通常很快就会填满日志文件,因此很难看到其他真正的问题。

有人知道抑制误报的方法吗?

最佳答案

我没有使用 purify 的经验,但也许显式初始化第一个结构会删除此警告:

struct something smth = {0};
struct something smth2;

我假设你的结构有 block 作用域(不是文件)。如果它们具有文件范围,则零初始化是隐式的。

关于c++ - Purify 在类/结构填充上的 Uninit 内存读取 (UMR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3298133/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com