El sizeof() es una función que sirve para saber la cantidad que ocupa una variable, tipo de dato... ¿Para que quiero yo saber eso?. Fácil, es necesario porque hace el programa portable, ya que un entero, o un char, float puede variar dependiendo del computador así nunca va a ser fijo. Por eso lo podemos emplear con seguridad de esta forma..
int *entero;
entero = malloc (sizeof(entero));
struct mistruct *dato;
dato = malloc (sizeof(mistruct));