codice:
build_component(int id, int fam, int cost, int lungh, int alt);
La stai richiamando e non lo devi fare come se la dichiarassi. Togli quegli "int".
Cmq ci sono altri errori..

Non assegnare una struct ad un puntatore int*
codice:
int *p

p = build_component(....
ma dichiaralo come struct;
codice:
struct component p;
EDIT:
togliendo la calloc..
PS: I puntatori allocati con malloc, calloc e/o successivamente rialloc si liberano con una free(<pointer>)