函数值使用指针的两种简便方法
第一种:开内存返回内存的指针;
int * add1(int a, int b) {//第一种:开内存存数,返回地址
int* sum = NULL;
sum = new int;
*sum = a + b;
return sum;
}
开内存的话有两种方式
方式一;使用malloc 然后使用free释放
void*malloc(int num);
void free(void*address);
例如
int main(){
int * a = NULL;//初始化指针数组
a = (int *)malloc( 10 * sizeof(int) );//申请10个整数的内存
free(a);释放内存
}
方式二:使用new data-type 然后使用delete释放:
new data-type;
delete 变量名
例如:
int main(){
int * a=NULL;//初始化为NULL的指针;
a = new int;//为变量申请内存;
delete a;//释放内存
}
在使用delete释放的时候需要注意的是定义数组动态内存释放的时候需要加上运算符[]
例如
int main(){
int * a = NULL;//初始化NULL指针
a = new int[20];//为变量申请20个整数的整型数组
delete [] a;释放内存
}
第二种:返回静态变量的地址,因为静态变量全局都是有效的,并不会被覆盖;
int* add2(int a, int b) {//第二种:使用静态变量,返回静态变量地址
static int sum = 0;
sum = a + b;
return ∑
}
传送门: