Chinaunix首页 | 论坛 | 博客
  • 博客访问: 305349
  • 博文数量: 20
  • 博客积分: 3011
  • 博客等级: 中校
  • 技术积分: 440
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-12 10:01
文章分类

全部博文(20)

文章存档

2008年(20)

我的朋友

分类: LINUX

2008-03-06 18:08:44

#include
#include
#include
//在子函数内分配内存需要传指向指针的指针
void get(char *p1,char *p2,char **p3,char *p4)
{
*p3 = (char *)malloc(100);
p4=(char *)malloc(100);
*p1='5';
strcpy(p2,  "p2\n");
strcpy(*p3, "p3\n");
strcpy(p4,  "p4\n");
 

}
int main(void)
{
char p1='3';
char *p2=NULL;
char *p3=NULL;
char *p4=NULL;
p2 = (char *)malloc(100);
get(&p1, p2, &p3, p4);
printf("%c\n",p1);
printf(p2);
printf(p3);
printf(p4);
}
输出
5
p2
p3
但是p4没有输出,因为get(&p1, p2, &p3, p4); p4传递的是指针的值,要在子函数里分配内存需要像p3一样
阅读(825) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~