我想知道这是否会导致 C++ 中的内存泄漏或未定义的结果?
string foo()
{
char tempArray[30];
strcpy(tempArray, "This is a test");
return string(tempArray);
}
我知道这在 C 中是一件坏事,但我还没有找到 C++ 的明确答案。
所以每个人都说不,但我仍然对何时释放内存感到困惑?
假设我有一个调用上述方法的方法
void bar()
{
string testString = foo();
}
在上面的代码中,从 foo() 返回的字符串对象在什么时候调用了它的析构函数?是在被复制到对象 testString 之后立即进行的吗?