这是一个函数:
void foo() {
string str = "StackOverflo";
str.push_back('w');
}
当我们在函数内部声明字符串时,它是存储在堆栈还是堆中?为什么?
string foo() {
string str = "StackOverflo";
str.push_back('w');
return str;
}
我们可以返回字符串引用并继续在程序中的其他地方使用吗?
原文由 Andrei Margeloiu 发布,翻译遵循 CC BY-SA 4.0 许可协议
字符串对象本身存储在堆栈中,但它指向堆上的内存。
该语言被定义为将字符串对象存储在堆栈中。 string 构造对象的实现使用堆上的内存。