伙计们,我需要一点技术帮助。
我在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/