【发布时间】:2019-09-08 18:53:24
【问题描述】:
我有一个无符号整数(比如 32 位),当我将它分配给一个有符号整数时,转换后是否有未初始化的位留在有符号整数中。
unsigned int i = 10
int j = i;
我从 valgrind 得到一个错误,说在
观察到未初始化的字节int func(long,int,int);
我在第三个参数中看到一个 unsigned int 被传递给这个函数。我怀疑这个无符号签名的转换会导致这个 valgrind 错误
【问题讨论】:
-
你为什么要问?既然你用valgrind 标记了你的问题,有什么让你怀疑的吗?
-
你的意思是在主值之前是否可以有
1s?不。它将值 10 分配给有符号整数 -
我不明白
uninitialized部分 - 位 cab 为 0 或 1,如果未设置,则必须清除。没有第三种选择。 -
@user1660982 请提供minimal reproducible example,以便在此处按要求重现您的问题。
-
@user1660982 这是不可能的。你做错了什么。
标签: c++ valgrind bit unsigned signed