相关疑难解决方法(0)

比较悬空指针是否合法?

比较悬空指针是否合法?

int *p, *q;
{
    int a;
    p = &a;
}
{
    int b;
    q = &b;
}
std::cout << (p == q) << '\n';
Run Code Online (Sandbox Code Playgroud)

注意如何既pq点有对象已经消失了.这合法吗?

c++ pointers language-lawyer dangling-pointer

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

取消引用无效指针,然后获取结果的地址

考虑:

int* ptr = (int*)0xDEADBEEF;
cout << (void*)&*ptr;
Run Code Online (Sandbox Code Playgroud)

*如果它与一个立即使用&并且假设没有超载op&/ 在场,那么它是多么违法op*


(这对解决过去的数组元素有一个特殊的影响&myArray[n],这个表达式明确相当于&*(myArray+n).这个Q&A解决了更广泛的情况,但我不觉得它真的满足了上面的问题.)

c++ pointers

23
推荐指数
2
解决办法
3129
查看次数

标签 统计

c++ ×2

pointers ×2

dangling-pointer ×1

language-lawyer ×1