打印

指针问题

[复制链接]
774|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pkat|  楼主 | 2012-3-14 18:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
二层指针做函数参数,为什么不能把数组地址直接传入?
22 void fun(char **p)
23 {
24 // *p= "abc";
25 strcpy(*p,"abc" );
26 printf("%x, %x, %x\n", **p, *p, p);
27 }
28 int main()
29 {
30 char a[4];
31 char *q;
32 memset(a,0,4);
33 q=a;
34 fun(&q);
35 printf("%s, %x, %x\n", q,q,&q);
36 printf("%s, %x\n",a,a);
37 return 0;
38 }
~

jzhang@lyra:~/test> ./test
61, bfc3fcd0, bfc3fccc
abc, bfc3fcd0, bfc3fccc
abc, bfc3fcd0



22 void fun(char **p)
23 {
24 // *p= "abc";
25 strcpy(*p,"abc" );
26 printf("%x, %x, %x\n", **p, *p, p);
27 }
28 int main()
29 {
30 char a[4];
31 char *q;
32 memset(a,0,4);
33 q=a;
34 fun(&a);
35 printf("%s, %x, %x\n", q,q,&q);
36 printf("%s, %x\n",a,a);
37 return 0;
38 }

jzhang@lyra:~/test> ./test
Segmentation fault

相关帖子

沙发
火箭球迷| | 2012-3-14 18:21 | 只看该作者
指向数组的指针是int (*)[4]不是char **

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

196

主题

2726

帖子

0

粉丝