可能重复:
可以在其范围之外访问局部变量的内存吗?
我最近遇到了以下代码:
#include <stdio.h>
int* abc () {
int a[3] = {1,10,100};
return a;
}
int* xyz () {
int b[1] = {222};
return b;
}
int main() {
int *a, *b;
a = abc();
b = xyz();
printf("%d\n", *a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是222
.'a'
指向在里面声明的数组xyz()
.
我的问题是:
为什么指向内部声明的数组xyz()
.
函数xyz()
执行后声明的数组应该超出范围.为什么没有发生?