return 语句会发生的错误
return 用来终止一个函数并返回其后跟着的值
char *Func(void)
{
char str[30];
...
return str;
}
上面这个函数虽然语法正确,但却会产生程序员不想要的错误。
str 属于局部变量,位于栈内存里,当函数结束时,str被释放,返回str会产生错误。
所以:return 不能返回指向栈内存的指针!
return 用来终止一个函数并返回其后跟着的值
char *Func(void)
{
char str[30];
...
return str;
}
上面这个函数虽然语法正确,但却会产生程序员不想要的错误。
str 属于局部变量,位于栈内存里,当函数结束时,str被释放,返回str会产生错误。
所以:return 不能返回指向栈内存的指针!