读书人

这个函数有什么有关问题?该怎么修改呢

发布时间: 2013-10-01 12:15:56 作者: rapoo

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

[解决办法]
char *不要用于返回值,而是要在外面定义好,在函数中直接操作

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

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

所以,你不要这样写。

读书人网 >C++ Builder

热点推荐