伙计们,我需要一点技术帮助。
我在C++中工作,没有太多的工作经验,但是对语言有所了解。我需要使用C样式的字符串(char数组),但需要在堆上分配它。

如果您看一下这段非常简单的代码:

#include <iostream>
using namespace std;

char* getText()
{
    return "Hello";
}

int main()
{
    char* text;
    text = getText();
    cout << text;
    //delete text; // Calling delete results in an error
}

现在,我假设将“Hello”字符串分配在堆栈中的getText()中,这意味着一旦getText返回,指针就会“ float ”,对吗?

如果我是对的,那么将“Hello”放在堆上的最佳方法是什么,这样我可以在getText之外使用该字符串,并在需要时在指针上调用delete?

最佳答案

使用std::string header 中的<string>。然后使用其.c_str()成员函数。然后,您不必在乎分配和释放:它会为您正确地处理它。

干杯,……

关于c++ - 在堆上分配C样式的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4298410/

10-13 08:07