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