Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这样的函数会导致悬空指针吗?
int *foo () { int a[2] = {2, 3}; int *p = NULL; p = a; return p; }
是的。您正在返回一个指向具有自动存储持续时间的数组的指针。当函数返回时指针无效。
永远不要返回指向自动局部变量的指针。 在您的情况下,变量a一旦返回就不存在foo,因此指向它的指针将无效(调用未定义的行为)。
a
foo