時,這是從 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
他們不一樣,都是一個壞主意。 –