W C, mam tablicę kodowanym zdefiniowane następująco:Wynik "sizeof" na tablicy structs w C?
struct D
{
char *a;
char *b;
char *c;
};
static struct D a[] = {
{
"1a",
"1b",
"1c"
},
{
"2a",
"2b",
"2c"
}
};
chciałbym określić liczbę elementów w tablicy, ale sizeof(a)
zwraca błędny wynik: 48, a nie 2. Czy robię coś źle, czy jest sizeof
po prostu niewiarygodne tutaj? Jeśli to ważne, kompiluję się z GCC 4.4.
Zobacz http://stackoverflow.com/questions/1598773/is-there-a-standard-function-in-c-that-would-return-- length-of-an-array/1598827#1598827 dla odpowiedź, która zawiera kilka hacków, aby techniki zamieszczone poniżej były bezpieczniejsze. –