#include <stdio.h>
const char* HelloWrong() {
char buf[] = "Hello world"; // 局部栈上数组
return buf; // 返回局部数组地址
}
int main() {
printf("%s", HelloWrong());
return 0;
}
#include <stdio.h>
const char* HelloWrong() {
char buf[] = "Hello world"; // 局部栈上数组
return buf; // 返回局部数组地址
}
int main() {
printf("%s", HelloWrong());
return 0;
}
程序稳定且正确地输出 “Hello world”
编译阶段报错(语法/链接错误)
运行时发生非法访问/未定义行为
发生内存泄漏,但能正确输出

这道题你会答吗?花几分钟告诉大家答案吧!