小编grx*_*x00的帖子

作用域中有一个变量。在范围之外使用这个变量地址是未定义的行为吗?

这是一个简单的例子。

void func()
{
    int* p = nullptr;
    if(p == nullptr)
    {
        int n;
        p = &n;
    }
    *p = 10; // undefined behavior??
}
int main()
{
    func();
}
Run Code Online (Sandbox Code Playgroud)

没有complie警告(visual studio 2019),以这种方式使用“* p = 10”是“未定义的行为”吗?

它会因编译器、调试或发布而异吗?

c++ memory scope

2
推荐指数
1
解决办法
70
查看次数

标签 统计

c++ ×1

memory ×1

scope ×1