C++的生存期
int* CreateArray()
{int array[50];return array;
}int main()
{int array=CreateArray();
}
我们期望在主函数外面定义了一个函数来创建一个数组,然后在主函数使用这个数组,但是CreateArray函数创建的数组是基于栈创建的,一旦退出作用域,指针将自动释放,因此我们不能通过这种方式来获取指向数组内存地址的指针。
我们可以使用堆来创建。
int array = new int[50];
我们可以使用堆来创建对象,但是在退出作用域时,它可以自动释放内存。也就是说结合了栈和堆的优点,这是可以做到的——智能指针。
请看下一篇博客~~~