По какой-то причине, если я пытаюсь получить фактический размер mystruct
я получаю размер 1.размера структуры в C равен 1
Я знаю, что mystruct
держат причину данных я могу сбросить ее и все в mystruct
.
Что может быть причиной получения размера 1? Благодаря
// fragments of my code
struct mystruct {
char *raw;
int count;
};
struct counter {
int total; // = 30
}
static struct mystruct **proc()
{
int i = 0;
gchar *key,*val;
struct mystruct **a_struct;
struct counter c;
a_struct = (struct mystruct **)malloc(sizeof(struct mystruct *)*c.total);
while (table (&iter, (gpointer) &key, (gpointer) &val)) {
a_struct[i] = (struct mystruct *)malloc(sizeof(struct mystruct));
a_struct[i]->raw = (char*)key;
a_struct[i++]->count = (int)val;
}
size_t l = sizeof(a_struct)/sizeof(struct mystruct*);
printf("%d",l); // outputs 1
}
Кроме того, используйте% zu вместо спецификатора формата% d для size_t. –
Спасибо, что решили проблему! – Josh