在 C++ 中初始化没有 new 关键字的字符串指针

Shi*_*mar -1 c++

我正在使用 C++。我想初始化字符串指针。我一直在使用:

string *strPtr = new string("abcd");
Run Code Online (Sandbox Code Playgroud)

但我不想使用堆内存。使用这样的东西:

string *strPtr;
// initialize with "abcd"
Run Code Online (Sandbox Code Playgroud)

如何使用堆栈内存来做到这一点?

小智 7

您可以在堆栈上声明一个字符串,然后获取它的地址:

std::string str{"abcd"};
std::string* ptr_str = &str;
Run Code Online (Sandbox Code Playgroud)

但我相信处理引用、智能指针或std::string_view. 现在应该在一些非常特殊的情况下使用原始指针。

  • 最方便的可能是直接使用“str”。 (4认同)