sizeof

sizeof nos da el número de bytes que ocupa el tipo pasado. Se utiliza como si de una función se tratase
sizeof(int); /* devuelve el tamaño de un int en la máquina en la que se ejecuta el código */

ejemplo:

#include <stdio.h>
#include <string.h>

struct struct_ej
{
int a;
char c[10];

};
int main(void)
{
int arr[20];
struct struct_ej mystruct;  //Se declara una variable estructura del tipo struct_ej
char *cad;
cad = mystruct.c;  //cad apunta a array mystruct.c

      strcpy(cad,"cadena");  /*
                                             asignamos cadena al puntero cad. Una manera algo enrevesada
                                             de poner un valor en mystruct.c
                                          */

     //Mostramos por pantalla los valores de los tipos en bytes
      printf("Tamaño de un char %lu\n",sizeof(char));
      printf("Tamaño de un short %lu\n",sizeof(short));
      printf("Tamaño de un int %lu\n",sizeof(int));
      printf("Tamaño de un long %lu\n",sizeof(long));
      printf("Tamaño de un long long %lu\n",sizeof(long long));
      printf("Tamaño de un float %lu\n",sizeof(float));
      printf("Tamaño de un double %lu\n",sizeof(double));
      printf("Tamaño de un long double %lu\n",sizeof(long double));
      printf("Tamaño del array arr de enteros %lu\n",sizeof(arr));
      printf("Tamaño de la función %lu\n",sizeof(mystruct));
      printf("%s\n",mystruct.c);

      return 0;
}


Este programa ejemplo nos muestra por pantalla el tamaño de los tipos, incluido el tamaño del array arr, y el tamaño de la estructura.