C 中结构中的元素数
Number of Elements in a Struct in C
我是 C 的新手,我想知道结构数组的大小。我尝试使用 sizeof 但它没有用。
typedef struct Voitures{
char categorie[20];
char marque[15];
char model[15];
char boite[12];
unsigned short int prix;
unsigned short int qtt;
} Voiture;
Voiture liste_voitures[];
int main(){
//elements added to liste_voitures[]
prinft("%d", sizeof(liste_voitures)/sizeof(liste_voitures[0]);
return 0;
}
我应该如何进行?
啊哈,你的编辑现在更清楚了
如果 list_voitures 应该是一个动态大小的数组,那么您无法通过这种方式找到它
sizeof(lv)/sizeof(lv[0])
仅适用于固定大小的数组。在你的例子中,你创建了一个零大小的数组,所以得到了答案 0。如果你这样做
Voiture liste_voitures[10];
您将获得 10 个。
但是我想你想要一个动态数组。您必须自己跟踪尺码
还有
Voiture *liste_voitures;
这是一个指向对象的指针
我是 C 的新手,我想知道结构数组的大小。我尝试使用 sizeof 但它没有用。
typedef struct Voitures{
char categorie[20];
char marque[15];
char model[15];
char boite[12];
unsigned short int prix;
unsigned short int qtt;
} Voiture;
Voiture liste_voitures[];
int main(){
//elements added to liste_voitures[]
prinft("%d", sizeof(liste_voitures)/sizeof(liste_voitures[0]);
return 0;
}
我应该如何进行?
啊哈,你的编辑现在更清楚了
如果 list_voitures 应该是一个动态大小的数组,那么您无法通过这种方式找到它
sizeof(lv)/sizeof(lv[0])
仅适用于固定大小的数组。在你的例子中,你创建了一个零大小的数组,所以得到了答案 0。如果你这样做
Voiture liste_voitures[10];
您将获得 10 个。
但是我想你想要一个动态数组。您必须自己跟踪尺码
还有
Voiture *liste_voitures;
这是一个指向对象的指针