问大家一个超级简单的问题 return 局部变量
例如:
#include <stdio.h>
int GetNum()
{
int b=2;
return b;
}
void main()
{
int i=GetNum();
printf("%d \n",i);
}
能返回2,但这不是返回局部变量吗?在程序调用完GetNum()之后,局部变量b不就销毁了吗?
而这个函数
char *GetMemory( void )
{
char p[] = "hello world";
return p;
}
int GetNum()
{
int b=2;
return b;
}
void Test( void )
{
char *str = NULL;
str = GetMemory();
printf(str);
}
就是因为返回了局部变量而错,这是为什,么????求大家指点
[解决办法]
不是不能返回局部变量,是不能返回指向局部变量的指针和引用。
[解决办法]