undefined-behavior

undefined-behavior

文章 0 浏览 7

返回指向局部变量的指针始终是未定义的行为

我已经读到,我们不应返回指针或对本地变量的引用。因此,在下面给定的示例中,我了解当我写作时:返回f; enfunce foo 时,我正在将指针返回到本地变…

面如桃花 2025-01-18 09:42:19 4 0

如何在不调用未定义的行为的情况下检查一个值适合类型?

我希望检查 double 值是否可以表示为 int (或对于整数类型的任何一对浮点)。这是一种简单的方法: double x = ...; int i = x; // potentially unde…

清音悠歌 2025-01-18 08:58:56 4 0

从函数中返回布尔文字作为参考

我在尝试查找错误时遇到了此代码: int x = 10; // for example const bool& foo() { return x == 10; } int bar() { bool y = foo(); // error here …

日裸衫吸 2025-01-18 07:03:53 2 0

ListNode的初始化

我有一个关于 ListNode 初始化的问题,如果我只是宣布一个 ListNode 指针,为什么我不能像代码中所示分配它的下一个值。 struct ListNode { int val; …

暖树树初阳… 2025-01-17 08:16:41 4 0

了解 UB 和指针算术

我有一个通用的引用计数堆分配包装类。所以我的类基本上只是一个指针: template class Refcounted { struct model { std::atomic count{1}; T value;…

離殇 2025-01-16 21:28:02 3 0

当我在 C++ 中打印未初始化的变量时会发生什么?

为什么会打印 32767 (或其他一些随机数)?什么是 std::cout 打印?为什么它不是NULL(或0)? int main() { int a; std::cout << a; } …

心如荒岛 2025-01-15 19:18:40 3 0

关于 [expr.mptr.oper]/4 的问题

[expr.mptr.oper]/4指出: [..] 如果 E1 的动态类型不包含 E2 所属的成员 指的是,行为未定义[..]。 下面的代码是UB吗? struct B { int a{ 10 }; }; …

陌路黄昏 2025-01-15 18:54:23 3 0

矢量越界访问:为什么会出现这种行为?

我知道使用 operator[] 在 C++ 中对 std::vector 进行越界访问会导致未定义的行为。因此,我不应该期望这样做会带来任何有意义的事情。然而,我很好奇…

哽咽笑 2025-01-15 18:41:00 4 0

我需要了解这些 C 指针的行为

玩弄指针我产生了一种我无法解释的行为。当我在附件函数中打印字符串时,在打印未初始化的 char* 时,我的主函数中出现段错误(我认为这是合理的),…

素手挽清风 2025-01-15 17:09:50 4 0

尝试释放 C 中的内存时出现堆损坏错误

我有这段代码: #include #include int* create_arr(int start, int end) { int length = end - start, i = start, j; int* arr; arr = (int*)malloc(…

说不完的你爱 2025-01-15 15:00:04 3 0

C - 使用 memset 设置未定义的 _Bool 后读取 _Bool 是否已定义,实现是否已定义?

在 ISO 标准 C 中,我的理解是,没有什么可以真正确定 _Bool 的表示形式,但它确实说: “_Bool 足够大,可以容纳值 0 和 1” “当任何标量值转换为 _…

撩发小公举 2025-01-15 14:10:33 2 0

向下转换指向成员的指针会导致未定义的行为

我在某处读到,指向派生类成员的指针可以转换为指向其基类成员的指针。当我读到这篇文章时,我聪明的头脑开始思考许多例子,并不断发明无限多种可能性…

蘸点软妹酱 2025-01-15 12:57:46 4 0

对于非 void 函数没有 return 语句,其中控制永远不会结束,这是未定义的行为吗?

我正在使用此处列出的书籍学习 C++。特别是,我读到从非 void 函数末尾流出是未定义的行为。然后我看了这个答案,上面写着: 在 C++ 中,仅从值返回函…

婴鹅 2025-01-14 20:35:50 3 0

C++将 new 放置到 NULL 中的不寻常用法

在 以下 C++98 语句中: multiThreadService[nextBuffer] = new (NULL) MultiThreadService(binder); 这样说是否正确: 这是“placement new”, 该对…

初心 2025-01-14 15:13:39 4 0

scanf 转换为指针

我有这样的代码: char *ps = "hello"; scanf("%s", ps); 我想写一个字符串,让我们假装“a”,到指针而不使用数组。尝试将字符串扫描到 ps 中会导致…

听你说爱我 2025-01-14 11:24:13 4 0
更多

推荐作者

李珊平

文章 0 评论 0

Quxin

文章 0 评论 0

范无咎

文章 0 评论 0

github_ZOJ2N8YxBm

文章 0 评论 0

若言

文章 0 评论 0

南…巷孤猫

文章 0 评论 0

更多

友情链接

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