我该怎么做。
char* ToString(int num) {
char* str = new char[len(num)];
//conversion
return str;
并通过调用它。
string someStr = ToString(someInt);
我应该在这里释放 someStr
吗?
我知道每当我使用 new
时我总是需要delete
。
如果我多次调用这个函数会怎么样,我是否分配了内存并让它们不使用它呢?
最佳答案
你应该完全避免这种做法。要么返回一个 std::unique_ptr
,要么直接处理 std::string
。从你的代码中不清楚你到底想做什么,所以我不能提供具体的解决方案。
注意这个初始化:
string someStr = ToString(someInt);
只有当您返回一个以 null 结尾的字符串时才会正常工作,但无论如何它都会泄漏资源。
参见 this related post .
关于c++ - 返回分配的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14707001/