2016-07-29 85 views

回答

1

您在堆棧上創建一個臨時對象並返回一個指向它的指針。在功能完成後不能保證它會生存。

2

這個函數的調用者在調用它之後會做什麼?

t的壽命是多少?什麼時候結束?

這些都會帶來不幸的後果嗎?

t是該函數的局部函數,它將在右大括號處死去。返回的指針根本無法使用,但這就是調用者可能會做的事情,觸發未定義的行爲。

1

你是返回一個指向本地對象不會在功能

1

年底存在你返回一個指針T,其超出範圍,當你從函數返回。你應該在函數內部創建一個新的指針並返回它。

cObject *t = new cObject(); 
return t; 
+1

不是參考,而是指針 –