【发布时间】:2017-11-09 02:04:26
【问题描述】:
我遇到过一些断言,即设置指向不是标量地址或超出标量地址的指针的行为是未定义的(对数组有类似的限制)。
所以考虑一下:
int main()
{
int* bar;
{
int foo = 1;
int* b = &foo;
bar = b;
}
int* copy = bar;
}
int* copy = bar; 的行为是否已定义? bar 不再指向标量,因为它超出了范围。
【问题讨论】:
-
dereferencing 它肯定是未定义的,但我对此并不完全确定。不过在实践中是没有问题的。
标签: c language-lawyer