文章目录
C++返回指针的函数
知识点
指向全局变量的指针可以作为函数返回值。
但局部变量不可以。局部变量的生命周期为:声明时,直到当前作用域(花括号)结束。函数返回后,该局部变量对应内存被回收,指向它的指针无意义。
指向new得到的内存的指针可以作为返回值。该内存在堆上分配,直到被delete之前都不会被回收。
int tmp;
int *func1 (int val)
{
int a;
int *b = new int [2];
// return &val; // err: val的生命周期在return时就结束了
// return &a; // err: 同上
// return b; // ok
return &tmp; // ok
}