In C, ich habe ein Array von Strukturen wie definiert:Ergebnis von 'sizeof' auf Array von Strukturen in C?
struct D
{
char *a;
char *b;
char *c;
};
static struct D a[] = {
{
"1a",
"1b",
"1c"
},
{
"2a",
"2b",
"2c"
}
};
ich die Anzahl der Elemente im Array bestimmen möchte, aber sizeof(a)
gibt ein falsches Ergebnis: 48, nicht 2. Bin ich etwas zu tun falsch, oder ist sizeof
hier einfach unzuverlässig? Wenn es wichtig ist, kompiliere ich mit GCC 4.4.
Siehe http://stackoverflow.com/questions/1598773/is-there-a-standard-function-in-c-that-whould-return-the-length-of-an-array/1598827#1598827 für eine Antwort, die einige Hacks enthält, um die unten aufgeführten Techniken sicherer zu machen. –