未定义行为 问答列表

“*s = 0”被优化掉。可能的 GCC 13 错误?还是一些未定义的行为?

作者:tueda 提问时间:11/2/2023

在 GCC 13.2 中,以下代码的输出取决于优化级别: #include <ctype.h> #include <stdio.h> char *SkipAName(char *s) { if ...

通过 const 指针而不是 const 引用传递临时引用;此解决方法格式是否正确?

作者:dragonroot 提问时间:11/4/2023

显然,根据 C++ 标准,不能将 const 指针作为函数的参数传递给临时,而传递 const 引用是完全可以的,即使两者本质上是相同的。 这令人费解,到目前为止,我唯一的解释是 C++ 不能微妙到...

无法读取属性“undefinedProperty”

作者:rupal modi 提问时间:11/6/2023

我收到这个错误 错误消息:“TypeError:无法读取 null 的属性'undefinedProperty'” 试过这个,这救了我的命! if (myObject & & myObject.u...

即使被访问的成员充分对齐,访问未对齐联盟的成员是否为未定义的行为?

作者:user16217248 提问时间:9/28/2023

在 C 中,如果我尝试通过未对齐的指针访问类型,可能会发生不好的事情: int x[2]; // Assuming CHAR_BIT == 8 && sizeof(int) == 4 *(int *...

不从函数返回不是错误吗?

作者:Swift - Friday Pie 提问时间:11/7/2023

对于大多数主要编译器来说,gcc、clang、nvc 在编译以下代码(可抑制代码)时只产生警告的原因是什么? #include <iostream> int foo() { return 42; ...

C++14 中的放置新 + reinterpret_cast:格式良好?

作者:user1011113 提问时间:10/30/2023

请考虑 C++14 中的以下示例: alignas(T) unsigned char data[sizeof(T)]; new (data) T(); T* p = reinterpret_cast...

不带 malloc 的链表 [duplicate]

作者:Anh Duc Nguyen 提问时间:11/9/2023

这个问题在这里已经有答案了: 是否可以在其范围之外访问局部变量的内存? (21 个答案) 10天前关闭。 我自己也开始学习 C,根据《Programming in C (4th Edition)》一...

写出边界矩阵

作者:MRn0b0dy 提问时间:11/14/2023

考试中的练习需要在纸上写下执行以下程序后记忆获得的值。问题是在这个程序中,当 for 循环到达元素 3 时,我们正在访问未分配的内存。写入未分配内存的值是实际存储的还是未定义的行为,因此不写入它是正确...

为整数类型分配无限值是否具有未定义的行为?

作者:chqrlie 提问时间:10/29/2023

C 标准规定了有限浮点值在存储为整数类型时如何转换它们,但它似乎没有指定非有限值的行为: 6.3.1.4 实浮点数和整数 1 当标准浮点型的有限值转换为 以外的整数类型时,小数部分将被丢弃(即,该...

有没有一种故障安全方法可以确定 C 中指针的对齐/尾随位?

作者:user16217248 提问时间:11/16/2023

在 C 中,如果一定数量的尾随位为零,则指针与某个指针对齐。这需要提取指针的位,尽管只是有限数量的尾随位。显而易见的方法是强制转换指向位掩码的指针并使用位掩码:uintptr_t void *my_...


共35条 当前第2页