Rozmiar tablicy wskaźników char z funkcji
Używając tego kodu:
#include <stdio.h>
void printSize(char *messages[]) {
printf("%d", sizeof(messages) / sizeof(char *));
}
int main(void) {
printf("Size when through passing direct to function: ");
printSize((char *[]){"Zero", "One", "Two", "Three"});
printf("\n");
printf("Size when calculating in main: %d\n", sizeof((char *[]){"Zero", "One", "Two", "Three"}) / sizeof(char *));
return 1;
}
Otrzymuję dane wyjściowe:
Size when through passing direct to function: 1
Size when calculating in main: 4
Rozumiem, że nie ma sposobu, aby uzyskać poprawną liczbę elementów w tablicy char *, ale jestem ciekawy, dlaczego dają różne wyniki.