#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一样
阅读(853) | 评论(0) | 转发(0) |