void func(char *s[]){
printf("s: %d\n", sizeof(s));
}
void caller(){
char *a[2];
for(int i = 0; i < 2; i++){
a[i] = (char *)malloc(50 * sizeof(char));
}
strcpy(a[0], "something");
strcpy(a[1], "somethingelse");
printf("a: %d\n", sizeof(a));
func(a);
}
a: 16
s: 8
为什么在caller()
和func()
sizeof()
不同的输出?另外,func
有可能通过sizeof
获得数组中char *
的数量吗?
欢迎使用C中的字符串/数组。它正在腐蚀指针。 – 2013-03-26 17:58:43