2016-07-29 63 views

回答

1

您在堆栈上创建一个临时对象并返回一个指向它的指针。在功能完成后不能保证它会生存。

2

这个函数的调用者在调用它之后会做什么?

t的寿命是多少?什么时候结束?

这些都会带来不幸的后果吗?

t是该函数的局部函数,它将在右大括号处死去。返回的指针根本无法使用,但这就是调用者可能会做的事情,触发未定义的行为。

1

你是返回一个指向本地对象不会在功能

1

年底存在你返回一个指针T,其超出范围,当你从函数返回。你应该在函数内部创建一个新的指针并返回它。

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

不是参考,而是指针 –