#include<stdio.h>
#include<stdlib.h>
char* re()
{
char *p = "hello";
return p;
}
int main()
{
char* tem = re();
printf("%s", tem);
return 0;
}
我的编译器是 Dev-C++。我认为当're'的功能完成时,'p'的指针将被删除,'p'指向的堆栈空间也将被删除。所以'tem'的指针不能访问'p'指向的栈空间。在我看来,这段代码会出现一些错误。但为什么不呢?
这个问题让我扭曲了很长时间。如果你能告诉我原因,我会感激你的好心。