Trong C, tôi có một mảng của cấu trúc được định nghĩa như sau:Kết quả của 'sizeof' trên mảng các cấu trúc trong C?
struct D
{
char *a;
char *b;
char *c;
};
static struct D a[] = {
{
"1a",
"1b",
"1c"
},
{
"2a",
"2b",
"2c"
}
};
Tôi muốn xác định số phần tử trong mảng, nhưng sizeof(a)
trả về một kết quả không chính xác: 48, chứ không phải 2. Tôi có làm điều gì đó sai, hoặc là sizeof
đơn giản là không đáng tin cậy ở đây? Nếu vấn đề tôi biên soạn với GCC 4.4.
Xem http://stackoverflow.com/questions/1598773/is-there-a-standard-function-in-c-that-would-return-the-length-of-an-array/1598827#1598827 cho một câu trả lời bao gồm một số hacks để làm cho các kỹ thuật được đăng dưới đây an toàn hơn. –