函数返回指针的情形:这个问题可以归结为堆栈问题
参数
外部变量
静态变量
在函数内部动态分配内存,返回这个内存地址,然后函数调用完后释放该内存
注意:不能返回函数内变量形式的指针
测试代码:
/*
*a fun() return a pointer,and test the pointer can be what?
*/
#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
int* fun(int arg,int type);
int out_1=1;
static int out_2=2;
int main(int argc,char* argv[])
//argv[1] is type for fun()' retrun value
{
int type=atoi(argv[1]);
int *p=fun(out_1,type);
cout<<*p<<endl;
return 0;
}
int* fun(int arg,int type)
{
int in_1=11;
int *in_2=new int(12);
static int in_3=13;
int temp=14;
int *in_4=&temp;
if(type==1)//return out_1:outer variable
{
cout<<"return outer variable's pointer"<<endl;
return &out_1;
}
else if(type==2)//retur