У меня есть следующая структура, которая определена следующим образом
typedef struct _abcd {
int a;
unsigned long b;
void (*c)(int);
int d;
} abcd_t, *abcd;
Теперь у меня есть следующий код
static abcd foo
int set_size(int size){
foo = malloc(sizeof(abcd) * size);
}
Этот код по какой-то причине дает мне segfault при доступе к некоторымсвойств членов массива.Но я заметил, что если я изменю строку malloc на следующую - это решит проблему
foo = malloc(sizeof(foo[0]) * size);
Я нахожу это странным, как очевидно sizeof(foo[0]) = sizeof(abcd)
Так в чем же здесь разница?
Спасибо