C语言中变量本身可以作为参数传递,变量的指针也可以作为函数参数,但需要区分两者
工具/原料
VC6.0
方法/步骤
1、#include<stdio.h>#include<挢旗扦渌;stdlib.h>#include&l墉掠载牿t;string.h>//值传递时,并不改变实参的值voidgetmemory(char*p){ p=(char*)malloc(100); strcpy(p,"helloworld");}intmain(){ char*str=NULL; getmemory(str); printf("%s",str); free(str); return0;}并且每次调用函数,都会泄露100大小内存空间
2、#include<stdio.h>#include<stdlib.h>#include<string.h>//实参地址作为参数传递,可以改变实参的值voidgetmemory(char**p){ *p=(char*)malloc(100); strcpy(*p,"helloworld");}intmain(){ char*str=NULL; getmemory(&str); printf("%s\n",str); free(str); return0;}