这个函数有什么问题?该如何修改呢?详细点,马上结贴
这个函数有什么问题?该如何修改呢?
char *strA()
{
char str[] = "hello worle";
return str;
}
越详细越好
[解决办法]
char *不要用于返回值,而是要在外面定义好,在函数中直接操作
[解决办法]
return 语句不可返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁。
也就是说你的代码中定义的char*在return结束时会被销毁,但在其被重写之前其内容仍然是正确的,此时你可以正常访问这段内存,但这个内存是不被保护的,在下一刻很可能被修改而指向未知数据。
所以,你不要这样写。