【发布时间】:2021-06-15 21:14:26
【问题描述】:
最近遇到了一个小问题,困扰了我好一阵子,但也得到了一些解释。虽然还是有点混乱。
char *getString()
{
char *str = "Print Me!";
return str;
}
int main()
{
printf("%s", getString());
getchar();
return 0;
}
输出为:
Print Me!
虽然
char *getString()
{
char str[] = "Print Me!";
return str;
}
int main()
{
printf("%s", getString());
getchar();
}
给出一个垃圾值。为什么会这样。
【问题讨论】:
-
一定要提高编译器的警告级别,一个不错的会发出这个错误的诊断。
标签: c heap-memory stack-memory