时,这是从 Safe in C# not in C++, simple return of pointer/reference,C++对象 - 返回一个指针
的后续问题是:
person* NewPerson(void)
{
person p;
/* ... */
return &p; //return pointer to person.
}
一样?
person* NewPerson(void)
{
person* pp = new person;
return pp; //return pointer to person.
}
我知道第一个是坏主意,因为它将是一个野指针。 在第二种情况下,对象是否会在堆上安全 - 并且像在c# 中当最后一个引用已到达时超出范围?
这些都不是C#代码。第二个是C++中的内存泄漏,如果你不手动释放它的话。 – CodesInChaos
他们不一样,都是一个坏主意。 –