这个函数有什么有关问题?该怎么修改呢?详细点,马上结贴

这个函数有什么问题?该如何修改呢?详细点,马上结贴
这个函数有什么问题?该如何修改呢?
char *strA()
{
     char str[] = "hello worle";
     return str;
}
越详细越好这个函数有什么有关问题?该怎么修改呢?详细点,马上结贴

------解决方案--------------------
// 多此一舉的函式定義
char *strA() {
static char str[] = "hello worle";
return str;
}

------解决方案--------------------
返回临时变量的地址是不人道的这个函数有什么有关问题?该怎么修改呢?详细点,马上结贴
------解决方案--------------------
char *不要用于返回值,而是要在外面定义好,在函数中直接操作

------解决方案--------------------
return 语句不可返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁。 

也就是说你的代码中定义的char*在return结束时会被销毁,但在其被重写之前其内容仍然是正确的,此时你可以正常访问这段内存,但这个内存是不被保护的,在下一刻很可能被修改而指向未知数据。

所以,你不要这样写。