考虑以下代码:

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/

10-13 05:44