undefined-behavior 相关问题

编译或执行打破语言规则的程序的不可预测的结果,编译器,解释器和运行时系统都不得强制执行。

使用赋值表达式返回的值来初始化变量是否是未定义行为?

以下代码是标准未定义的吗? int 手指 = 10; int more = (手指 = 10); // 或者 // int more = 手指 = 10; 上述答案是否也适用于 std::map ? 标准::地图<...

回答 3 投票 0

使用分配值的表达式返回的值初始化变量是否为未定义行为?

以下代码是标准未定义的吗? int 手指 = 10; int more = (手指 = 10); // 或者 // int more = 手指 = 10; 与上述相同的答案是否适用于 std::map ? 标准::地图<...

回答 3 投票 0

使用memcmp比较两个不相关的指针是UB吗?

对两个不相关的指针(即不指向同一个数组或对象的两个指针)进行算术比较是 C 中未定义的行为。 整数a,b; 布尔 ub = &a < &b;...

回答 1 投票 0

嵌套聚合中的成员错误初始化? (MSVC)

以下代码的输出让我感到惊讶。我的期望是 Inner 会将 num1 初始化为 10(事实上),然后初始化 num2,复制 num1 的值 10。所以输出

回答 1 投票 0

Rust FFI 边界未定义行为何时会发生恐慌?

rustnomicon 包含以下示例: #[no_mangle] extern“C”fnassert_nonzero(输入:u32){ 断言!(输入!= 0) } 如果使用参数 0 调用assert_nonzero,则运行...

回答 1 投票 0

存储函数地址的地址?

这个程序有未定义的行为吗? 结构体存储{ 无效存储(无效(*&&fp)()){ fpp = &fp; } void call() const { (*fpp)(); } 无效(**fpp)(); }; 无效 f(...

回答 1 投票 0

通过指针访问结构体中的结构体是未定义的行为吗? [重复]

我有一个包含结构体B的结构体A,我通过指针pa访问A,通过指针ba访问b。这是未定义的行为(严格别名规则)吗? (struct B部分不是通过指针访问的...

回答 2 投票 0

是否将空指针强制转换为引用定义的行为?

我有这段C++代码: int main() { int* ptr = nullptr; int& ref = reinterpret_cast(ptr); 返回参考; } 在两者上使用 -Wall -Wextra -pedantic 进行编译时

回答 1 投票 0

为什么 -LLONG_MIN 会导致未定义的行为?

为什么 -LLONG_MIN 会导致未定义的行为? C11,6.5.3.3p3: 一元 - 运算符的结果是其(提升的)操作数的负数。整数 促销活动在OP上进行...

回答 2 投票 0

QObject 在删除时是否区分堆栈和堆分配的子级?

根据Qt文档: QObject 在对象树中组织自己。当您创建一个 QObject 以另一个对象作为父对象,该对象将自动 将其自身添加到 pare...

回答 1 投票 0

scanf() 在读取第三个取消引用的整数时使我的程序崩溃。我该如何解决这个问题?

好的,这是相关代码: int main(int argc, char *argv[]) { int *v1、*v2、*v3; printf("请输入三个整数:"); scanf("%d %d %d", v1, v2, v3); 打印(...

回答 2 投票 0

返回值和垃圾值的关系

在C语言中产生返回值的函数中,如果return语句没有产生返回值,会发生什么情况?在这种情况下编译器是否使用垃圾值?这就是所谓的...

回答 1 投票 0

==284==错误:AddressSanitizer:堆栈缓冲区下溢

我正在编写一个更简单版本的 Boyer Moore 算法,我需要使用循环缓冲区,因为可能会有很大的输入。程序应写入符号的所有位置...

回答 1 投票 0

Boyer Moore 算法简单版本中的未定义行为

我正在尝试编写没有前缀函数的更简单版本的 Boyer Moore 算法。它必须打印与模式进行比较的符号的所有位置。并在当地...

回答 1 投票 0

当使用分配给同一内存位置的多个指针时,如何在删除 C++ 中指针指向的内存后避免未定义的行为?

删除 C++ 中指针指向的内存后,我遇到了未定义的行为。当使用分配给同一内存位置的多个指针时,如何避免此问题? #包括<

回答 1 投票 0

如何将 std::tuple 元素移出类对象?

问题: 我想将元素移出类成员元组类型变量,但我想知道是否允许以下代码(接近最小的示例,仅限于 C++14): #包括<...

回答 1 投票 0

什么时候可以安全地使用 static_cast 在 C++ 中进行向下转型?

我需要知道在什么条件下可以使用 static_cast 以便将父类指针转换为子类指针而不会导致未定义的行为。 通常dynamic_cast是

回答 1 投票 0

此 Rust 代码会导致未定义的行为吗?

到目前为止,我只用 Rust 编写了安全代码。现在我正在从头开始编写一个 DBMS,以便深入理解该语言。由于性能是这里的重中之重,所以我尝试编写大部分 c...

回答 1 投票 0

在循环参数中初始化的变量范围是 C 中未定义的行为还是实现定义的行为?

就我今天所知,在C语言中,如果一个循环,for/while有括号,它就有一个范围,对吗?我在 GCC 中尝试了一些代码,情况似乎如此,例如: for(无符号字符 i=0;......

回答 2 投票 0

引用联合指针的数组成员与将联合强制转换为指向元素类型的指针完全相同吗?

我有一个工会: 联合 Obj64 { uint64_t u64; uint32_t u32[2]; uint16_t u16[4]; uint8_t u8[8]; }; _Static_assert(sizeof(union Obj64) == sizeof(uint64_t), "意外的尾随填充...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.