undefined-behavior

undefined-behavior

文章 0 浏览 3

我可以使用 C++ 中的内置类型安全地 new[],然后强制转换指针,然后安全地删除[] 吗?

在我的代码中,我实际上具有以下内容: wchar_t* buffer = new wchar_t[size] // bonus irrelevant code here delete[] reinterpret_cast&ltchar*&gt(…

无人问我粥可暖 2024-08-18 20:26:55 3 0

代码的有效性

考虑以下代码: void populate(int *arr) { for(int j=0j&lt4++j) arr[j]=0 } int main() { int array[2][2] populate(&amparray[0][0]) } 当地社区对…

无声静候 2024-08-18 01:43:21 4 0

以下代码是否调用 UB?

以下代码是否调用 UB ? int main(){ volatile int i = 0 volatile int* p = &ampi int j = ++i * *p } …

や三分注定 2024-08-17 23:27:04 1 0

限制未定义行为造成的混乱?

据我从阅读中了解到,未定义行为是编译器在编译时留下几个不同的替代方案的结果。然而,这是否意味着如果遵循严格的编码实践(例如将每个赋值和每个相…

不知所踪 2024-08-17 16:59:44 13 0

内存泄漏是“未定义的行为”吗? C++ 中的类问题?

事实证明,许多看似无辜的事情在 C++ 中都是未定义的行为。例如,一旦非空指针被删除,即使打印出该指针值也是未定义的行为。 现在内存泄漏肯定是很糟…

捶死心动 2024-08-16 05:06:46 4 0

C++删除 - 它删除了我的对象,但我仍然可以访问数据?

我编写了一个简单、有效的俄罗斯方块游戏,其中每个块都作为 singleblock 类的实例。 class SingleBlock { public: SingleBlock(int, int) ~SingleBlo…

明媚如初 2024-08-15 13:56:10 7 0

在 const 对象上间接调用非常量函数

给出以下代码: class foo foo* instance = NULL class foo { public: explicit foo(int j) : i(j) { instance = this } void inc() { ++i } private:…

金兰素衣 2024-08-15 00:32:54 5 0

为什么我不应该尝试使用“this”? “删除此”后的值?

在C++ FAQ 的这段中使用delete this&lt讨论了 /code&gt 构造。列出了 4 项限制。 限制 1 至 3 看起来相当合理。但为什么限制 4 是我“不能检查它、将…

薄荷→糖丶微凉 2024-08-14 03:36:38 5 0

C# 中具有未定义行为的代码

在 C++ 中,您可以通过多种方式编写可编译的代码,但会产生未定义行为(维基百科)。 C#中有类似的东西吗?我们可以用 C# 编写可以编译但具有未定义行…

我要还你自由 2024-08-13 23:46:46 3 0

关于 C 中联合的问题 - 存储为一种类型并读取为另一种类型 - 它是实现定义的吗?

我正在阅读 K&ampR 中关于 C 中的 union 的内容,据我了解,union 中的单个变量可以保存多种类型中的任何一种,如果某些内容存储为一种类型并提取为另…

江南月 2024-08-12 23:48:58 5 0

有没有办法区分 GUID 和随机数?

在调试模糊的代码缺陷时,能够将 GUID 与随机数据区分开来非常有用。 在 Windows 上,生成的每个 GUID 都是版本 4,因此它的第三部分的前半字节为“4…

撩心不撩汉 2024-08-12 03:37:26 5 0

为什么在不返回值的情况下流出非 void 函数的末尾不会产生编译器错误?

自从我多年前意识到这默认情况下不会产生错误(至少在 GCC 中),我一直想知道为什么? 我知道您可以发出编译器标志来产生警告,但它不应该总是错误吗…

柏拉图鍀咏恒 2024-08-08 20:20:03 4 0

是否允许使用 const_cast 对 const 对象进行只读访问?

在 C++ 中,我有一个只需要对数组进行只读访问的函数,但被错误地声明为接收非常量指针: size_t countZeroes( int* array, size_t count ) { size_t …

菊凝晚露 2024-08-07 00:27:00 11 0

我们如何解释表达式 (++x)+(++x)+(++x) 的结果?

x = 1 std::cout &lt&lt ((++x)+(++x)+(++x)) 我期望输出为 11,但实际上是 12。为什么?…

丢了幸福的猪 2024-08-06 14:27:30 5 0

您遇到的 C 语言常见的未定义/未指定行为有哪些?

Closed. This question needs to be more focused. It is not currently accepting answers. 想要改进这个问题?通过编辑这篇文章来更新问题,使其仅…

一梦等七年七年为一梦 2024-07-04 16:17:26 18 0
更多

推荐作者

1CH1MKgiKxn9p

文章 0 评论 0

ゞ记忆︶ㄣ

文章 0 评论 0

JackDx

文章 0 评论 0

信远

文章 0 评论 0

yaoduoduo1995

文章 0 评论 0

霞映澄塘

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文