这会导致悬空指针吗?

时间:2013-10-05 01:17:51

标签: c pointers dangling-pointer

这样的函数会导致悬空指针吗?

int *foo () {
    int a[2] = {2, 3};
    int *p = NULL;
    p = a;
    return p;
}

2 个答案:

答案 0 :(得分:6)

是。您将返回指向具有自动存储持续时间的阵列的指针。当函数返回时,指针无效。

答案 1 :(得分:2)

永远不要返回指向自动局部变量的指针 在你的情况下,a返回时变量foo不存在,因此指向它的指针将无效(调用未定义的行为)。