int* test( )
{
int a = 5;
int* b = &a;
return b;
}
Run Code Online (Sandbox Code Playgroud)
结果会test是一个bad pointer?据我所知,应该删除,然后b会成为乱搞指针,对吧?
如何更复杂的东西,不是一个int指针,但与20个成员左右的类相同?
小智 5
是的,它是指向不再存在的东西的指针,局部变量称为a.无论是一个int,一个数组,一个类的实例都没有区别.并且c ++没有垃圾收集.
在这种情况下,以及在许多其他情况下,您当然应该返回一份副本:
int test( )
{
int a = 5;
return a;
}
Run Code Online (Sandbox Code Playgroud)
这对于类以及内置类型都是如此.
| 归档时间: |
|
| 查看次数: |
1403 次 |
| 最近记录: |