#include <iostream>
int *newInt(int value);
int main()
{
int *x = newInt(20);
std::cout << *x;
delete x;
x = NULL;
return 0;
}
int *newInt(int value)
{
int *myInt = new int;
*myInt = value;
return myInt;
}
函数返回值类型为指针,返回一个地址。函数里动态创建一个堆内存的空间,存储一个数字,将地址通过返回值传出到 *x ,最后销毁 *x .
但函数一定不能返回指向局部变量的指针,因为局部变量在栈中,函数结束后,栈中的这个局部变量被释放,指针指不到那个地址,就出错了。
函数返回的指针只要在函数执行结束后,不消失,就ok~