标签: c pointers dangling-pointer
这样的函数会导致悬空指针吗?
int *foo () { int a[2] = {2, 3}; int *p = NULL; p = a; return p; }
答案 0 :(得分:6)
是。您将返回指向具有自动存储持续时间的阵列的指针。当函数返回时,指针无效。
答案 1 :(得分:2)
永远不要返回指向自动局部变量的指针 在你的情况下,a返回时变量foo不存在,因此指向它的指针将无效(调用未定义的行为)。
a
foo