返回信息流char a[] = "12345";
char (*p)[] = &a;
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(*p));
请问为啥不能对*p进行sizeof操作,编译器说char (*p)[]是不完全类型,这个数组大小不应该和a一样吗?
这是一条镜像帖。来源:北邮人论坛 / cpp / #85250同步于 2015/1/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[问题]关于不完全类型
glifeng0
2015/1/15镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
char a[] = "12345";
char b[] = "1234567890";
char (*p)[] = &a;
printf("%d\n",sizeof(*p));
p=&b;
printf("%d\n",sizeof(*p)); // 现在呢?
p=NULL;
printf("%d\n",sizeof(*p)); // 现在呢?
char buf[256];
scanf("%s",buf);
p=strdup(buf);
printf("%d\n",sizeof(*p)); // 现在呢?
好吧,理解了,谢谢啦!
【 在 nuanyangyang 的大作中提到: 】
: [code=c]
: char a[] = "12345";
: char b[] = "1234567890";
: ...................