再问《高质量**编程指南 》中的一道指针参数传递内存的问题
刚才不小心把提问的帖子给结了,再提出来
http://community.csdn.net/Expert/topic/3926/3926089.xml?temp=.3621332
char *GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
请问运行Test函数会有什么样的结果?
答:可能是乱码。
因为GetMemory返回的是指向“栈内存” 的指针,该指针的地址不是 NULL,但其原先的内容已经被清楚,新内容不可知。
请问这个栈内存究竟是啥回事?另外哪位大哥能告诉我关于指向堆还是指向栈的区分?还不是太明白。