考虑以下代码:
const char* someFun() {
// ... some stuff
return "Some text!!"
}
int main()
{
{ // Block: A
const char* retStr = someFun();
// use retStr
}
}
在
someFun()
函数中,"Some text!!"
存储在哪里(我认为它可能在ROM的某些静态区域中),作用域的生命周期是多少?retStr
指向的内存是在整个程序中被占用还是在块A退出后被释放? 最佳答案
C++标准未说明应将字符串文字存储在何处。但是,它的确保证了它们的生命周期是程序的生命周期。因此,您的代码是有效的。
关于c++ - 函数返回的字符串文字的生命周期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2579874/