相关疑难解决方法(0)

在同一个函数中,UB是否可以通过间接访问 - 一个不在范围内的局部变量?

在第二个闭合支撑之后,b只能通过间接通过a.

int main() {
    int *a;
    {
        int b = 42;
        a = &b;
    }
    printf("%d", *a); // UB?
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

由于b不再是范围,这个UB?我知道从已经返回的函数中取消引用指向非静态局部变量的指针是UB,但在这种情况下,所有内容都在同一个函数中.

这是C++中的UB,但我不确定C.

c scope undefined-behavior

3
推荐指数
2
解决办法
96
查看次数

标签 统计

c ×1

scope ×1

undefined-behavior ×1