C 语言函数值传递和指针传递区别

时间:2026-02-14 21:24:50

1、#include <stdio.h>

#include <stdlib.h>

#include <string.h>

//值传递时,并不改变实参的值

void getmemory(char *p)

p=(char *) malloc(100); 

strcpy(p, "hello world");

}

int main()

{

char *str=NULL; 

getmemory(str); 

printf("%s",str); 

free(str); 

return 0; 

}

并且每次调用函数,都会泄露100大小内存空间

C 语言函数值传递和指针传递区别

2、#include <stdio.h>

#include <stdlib.h>

#include <string.h>

//实参地址作为参数传递,可以改变实参的值

void getmemory(char **p)

*p=(char *) malloc(100); 

strcpy(*p,"hello world"); 

}

int main()

{

char *str=NULL; 

getmemory(&str); 

printf("%s\n",str); 

free(str); 

return 0; 

C 语言函数值传递和指针传递区别

© 2026 五度知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com