Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
clang 如何设法将具有未定义行为的代码编译成该机器代码?
这是代码的变体这条推文 https twitter com Poita status 903537522214621185 只是短一点 不会对菜鸟造成任何伤害 我们有这样的代码 typedef int Function static Fun
c
Compilation
Clang
compileroptimization
undefinedbehavior
在同一函数内,通过间接访问不在作用域内的局部变量是否是 UB?
在第二个右大括号之后 b只能通过间接访问a int main int a int b 42 a b printf d a UB return 0 Since b不再在范围内 这是 UB 吗 我知道从已经返回的函数中取消引用指向非静态局部变量
c
scope
undefinedbehavior
C# 中具有未定义行为的代码
在 C 中 有很多方法可以编写可编译但会产生结果的代码未定义的行为 维基百科 http en wikipedia org wiki Undefined behavior C 中有类似的东西吗 我们可以用 C 编写可以编译但具有未定义行为的代
c
undefinedbehavior
将双精度型转换为整数何时是未定义的行为
所以如下 double t 244 233 int a int t 不是未定义的行为 因为 244 可以容纳在里面int我做对了吗 否则 如果它是更大的值而不是 244 它不适合 int 这将是未定义的 我做对了吗 我更感兴趣的是 C 是如
c
floatingpoint
undefinedbehavior
floatingpointconversion
为什么这种类型的双关不是未定义的行为?
这是一个我认为会调用未定义行为的玩具示例 include
c
undefinedbehavior
typepunning
添加到 std::vector 时类字段的奇怪行为
我在以下情况下发现了一些非常奇怪的行为 在 clang 和 GCC 上 我有一个向量 nodes 有一个元素 一个类的实例Node 然后我调用一个函数nodes 0 这增加了一个新的Node到向量 当添加新节点时 调用对象的字段将被重置 然
c
vector
stdvector
undefinedbehavior
pushback
constexpr 计算负位移位时未定义的行为?
考虑以下代码片段 int main constexpr int x 1 if x gt 0 constexpr int y 1 lt
c
undefinedbehavior
bitshift
constexpr
为什么 vector::clear 不从向量中删除元素?
当我使用clear on a std vector 它应该摧毁里面的所有元素vector 但事实并非如此 示例代码 vector
c
stdvector
undefinedbehavior
如果程序的一部分表现出未定义的行为,它会影响程序的其余部分吗?
假设程序员忘记初始化他的一个自动变量 并且他使用了它的值 从而调用了未定义的行为 int i 0 j printf value of j d n j char buf 256 fputs Enter query stdout fgets b
c
undefinedbehavior
C++ 标准到底在哪里说取消引用未初始化的指针是未定义的行为?
到目前为止 我找不到如何推断出以下内容 int ptr ptr 0 是未定义的行为 首先 5 3 1 1 指出 表示间接转换T to T 但这并没有说明UB的任何事情 然后经常引用3 7 3 2 4 说在非空指针上使用释放函数会导致指针无效
c
standards
undefinedbehavior
languagelawyer
什么时候访问“死”对象的指针有效?
首先澄清一下 我是not谈论取消引用无效指针 考虑以下两个例子 实施例1 typedef struct int p T T a malloc sizeof int free a p a p is now indeterminate T b
c
pointers
languagelawyer
undefinedbehavior
对未定义的 C++ 移位运算符行为和包装“模式空间”感到困惑
我对在 Shift Operators 部分读到的内容感到困惑关于未定义的 C 行为的文章 http blogs msdn com b vcblog archive 2012 10 25 hello arm exploring undefi
c
undefinedbehavior
bitshift
安全 Rust 中可能存在未定义行为吗?
有没有什么方法可以在不使用 Rust 的情况下实现未定义的行为unsafe 当然 此类行为可以由第三方库包装在 安全 函数中 因此我们假设我们仅使用标准函数 绝对可以 但是任何此类情况都是 Rust 或标准库的错误 https github
Rust
undefinedbehavior
unsafe
standardlibrary
初始化是否需要左值到右值的转换?是 `int x = x;` UB 吗?
C 标准在 3 3 2 声明点 中包含一个半著名的 令人惊讶的 名称查找示例 int x x 这会初始化x与自身 作为原始类型 是未初始化的因此具有不确定的值 假设它是自动变量 这实际上是未定义的行为吗 根据4 1 左值到右值转换 对未初始
c
initialization
undefinedbehavior
languagelawyer
可观察的行为和未定义的行为——如果我不调用析构函数会发生什么?
Note 我见过类似的问题 但没有一个答案足够精确 所以我自己问这个 这是一个非常挑剔的 语言律师 问题 我正在寻找权威的答案 C 标准说 程序可以通过重用对象占用的存储空间或通过使用非平凡析构函数显式调用类类型的对象的析构函数来结束任何对
c
destructor
languagelawyer
undefinedbehavior
“检测到堆栈粉碎”的原因是什么?
我是编程新手 目前正在研究地址类型转换 我似乎不明白为什么我会得到这个 stack smashing detected terminated Aborted core dumped 当我运行以下代码时 include
c
pointers
casting
undefinedbehavior
在布尔值中设置额外的位可以使其同时为 true 和 false
如果我得到一个bool变量并将其第二位设置为 1 则变量同时计算为 true 和 false 用gcc6 3编译以下代码 g选项 gcc v6 3 0 Linux RHEL6 0 2016 x86 64 bin g g main cpp o
c
Boolean
undefinedbehavior
Evaluation
ABI
const_cast 和 UB
5 2 11 7 注 取决于 对象的类型 写操作 通过指针 左值或指针 到由 a 产生的数据成员 const cast 抛弃 a const 限定符68 may生产 未定义的行为 7 1 5 1 本节 C 03 的措辞令我惊讶 令人惊讶的是
c
undefinedbehavior
constcast
此示例中的 printf 语句是否调用未定义行为?
源自这个问题 https stackoverflow com questions 53747225 p is a pointer to a structure what do all these code snippets do 53747
c
undefinedbehavior
reinterpret_cast 能否将无效的指针值转换为有效的指针值?
考虑这个联盟 union A int a struct int b c c and a不是布局兼容 https timsong cpp github io cppwp n4659 basic types 11类型 因此无法读取其值b通过a
c
pointers
languagelawyer
C17
undefinedbehavior
«
1 ...
3
4
5
6
7
8
9
...11
»