使用道具 举报
最初由 小锁 发表 #include<stdio.h> #include<malloc.h> void foo(int a,char **b) { (*b) = (char *)malloc(64); snprintf((*b),64,"you are %d years old!\n",a); } int main(void) { char *f; foo(23,&f); printf("%s\n",f); } 复制代码
最初由 jeffshia 发表 #include<stdio.h> #include<malloc.h> void foo(int a,char *b) /* *b是不能讲malloc的指针数组返回给调用函数的,所以用**b */ { b = (char *)malloc(64); /* 这里就要改成 (*b) */ snprintf(b,"you are %d years old!\n",a); /* snprintf 的第2个参数应该是b的size,漏了*/ } int main(void) { char *f; foo(23,f); /* 修改了foo的接口,所以传个f的指针过去,&f */ printf("%s\n",b); /* b在main函数中没有定义,应该是f */ } 复制代码
本版积分规则 发表回复 回帖后跳转到最后一页