关于C语言指针返回问题
char *GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
请问运行Test函数会有什么样的结果?函数有错误没?
参考答案:char p[] = "hello world";
p是个局部变量,退出GetMemory函数后hello world占用的空间就释放掉了,所以str就指向不确定的空间。printf是没错的了。