请考虑以下代码:

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++标准没有说明应该存储字符串文本。但它确实保证了它们的生命周期就是程序的生命周期。因此,您的代码是有效的。

09-25 22:23