undefined-behavior 相关问题

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

新对象的自定义释放

给定一个从 new 表达式获得的指针,用显式调用析构函数(或 std::destroy_at)然后调用 ope 来替换相应的 delete 表达式是否合法 C++...

回答 0 投票 0

下面的代码是否格式正确,特别是关于别名规则?

下面的模板函数是序列生成器的一部分。我想出了以下基于联合的解决方案,而不是手动轮班,以使操作更加明确。它适用于所有...

回答 2 投票 0

Googletest(gtest)googlemock(gmock).为什么 "interleav[ing]`EXPECT_CALL()`s和对模拟函数的调用 "未定义行为?为什么 "interleav[ing]`EXPECT_CALL()`s和调用mock函数 "是未定义的行为?

尽管写了这个答案(google mock - 我可以在同一个mock对象上多次调用EXPECT_CALL吗?)这个答案(交错的EXPECT_CALL()和对mock函数的调用)和这个问题(Is ...

回答 1 投票 0

memcpy()在结构成员从一个 opque 指针投出的时候

比方说,我有一个API。/ api.h - 其他人可以 #include 这个头 #include class A { public: / 将数据写入一个不透明的类型。/ 用户不应该直接访问 ...

回答 1 投票 1

哪个 "C "实现没有实现有符号整数的模数运算?

参照C11草案第3.4.3节和C11草案第H.2.2节,我正在寻找对有符号整数实现模数运算以外行为的 "C "实现。具体来说,我...

回答 1 投票 -1


获得 "未定义 "的变量值,即使我已经定义了变量[关闭]。

HI 我定义了一个叫 "const VA "的变量,但是在输出中它是undefine的,原因是我无法看到它里面的值,下面是我的代码。 function createAddress(streetA,cityA,zipcodeA) ....

回答 2 投票 0

为什么 "i=++i; "和 "i=++i+2; "是未定义行为?[重复]

我找到这篇文章:https:/en.cppreference.comwcpplanguageeval_order我不知道为什么i = ++i;和i = ++i;+ 2是未定义的行为。第一个例子:int i = 5; i = ++i; 结果将 ...

回答 1 投票 0

避免未定义行为:临时对象

我已经写了一个类,用来作为一个方便的视图,例如在基于范围的fors中使用。总的来说,它只是一对带有边界检查的迭代器:模板------------------。 class Range { private.I ..: I ...

回答 1 投票 0

调用非活动联盟成员的成员功能

在下面的代码中调用foo是否会导致UB? using vec = std::array ; struct field0 { vec data; operator int() { return data[0]; }. }; union a { vec data; ...

回答 1 投票 1

从语义学的角度来看,Rust中的"&mut "noalias的未定义行为是什么时候发生的?

正如Rust参考文献所说 打破了指针别名规则.&mut T和&T遵循LLVM的scoped noalias模型,除非&T包含一个UnsafeCell。这真是...

回答 1 投票 3

当我使用一个void函数的返回值时(通过铸造一个函数指针),到底会发生什么?

当我运行以下程序时,它总是显示 "是"。但是当我把SOME_CONSTANT改为-2时,它总是打印 "no"。为什么会这样呢?我使用visual studio 2019编译器与优化......

回答 2 投票 -2

为什么返回的堆栈指针被gcc替换为空指针?

我已经在c语言中创建了以下函数,作为有关c语言中堆栈如何工作的演示/小谜:#include“ stdio.h” int * func(int i){int j = 3; j + = i;返回&j; } int ...

回答 1 投票 0

为什么我在C malloc的末尾得到一个垃圾值?

我正在编写如下的加密和解密函数:crypto(“ string”)->“ encryptedString” crypto(“ encryptedString”)->“ string”但是,当我...

回答 1 投票 -2

当我在C语言中遇到“未定义行为”错误时该怎么办?

我一直在研究CS50的问题4,并最终完成了过滤器。但是,当我的程序通过check50时,当我尝试运行./filter -e imagess / courtyard.bmp out.bmp时,我会得到这个...

回答 1 投票 0

通过将函数指针转换为void函数然后调用它来“破坏”返回值是否是未定义的行为?

说,是这样的:int SayHelloThenReturnTen(void){puts(“ Hello world”);返回10; }然后:((void(*)(void))SayHelloThenReturnTen)();这样安全吗?是否可以安全地“删除” ...

回答 1 投票 0

[C ++值初始化的向量迭代器比较

以下代码在c ++ 17中合法吗? std :: vector x {1,2,3}; std :: vector :: iterator it {};布尔结果= x.begin()!=它;以下是引自https://en.cppreference.com / ...

回答 2 投票 2


C fscanf的未定义行为

我下面有一个代码段。在macOS上,我已经在Xcode和CLion中运行了它,结果是相同的。另一方面,在Linux上使用gcc编译时,它可以完美运行。我想知道是否...

回答 2 投票 -2

是否正在访问多维数组的元素未定义行为?

请原谅令人困惑的问题标题,但我不确定如何更清楚地表达它。在C语言中,超出范围访问数组归为未定义行为。但是,保证数组元素...

回答 2 投票 2

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