文字常量区和栈区区别
char*fun()
{
char*p = “ab”;
return p;
}
char*fun1()
{
char *arry[10] = "ab"
char*q = arry;
return q;
}
int main()
{
char*p =fun();
puts(p);//正确,打印文字常量区的一个字符串。
char *q = fun1();
puts(q);//错误,因为字符串被放在了栈区,当fun1执行完之后,字符串数组占用的空间已经被释放掉,这些空间可能被其他程序的局部变量占用。导致打印乱码。
}