sizeof() function
    To reserve memory, the exact number of bytes that any data
    structure occupies must be known. As it was mentioned previously, a special
    feature of the C programming language is that the size of its data
    structures may vary between platforms. How do we know how many bytes to
    reserve to store, for example 10 integers? The language itself offers the
    solution to this problem through the function sizeof().
The function receives as the only parameter the name of one
    variable or the name of a data type and returns its size in bytes. With this
    definition, then, sizeof(int) returns the number of bytes that
    are used to store an integer. The function can also be invoked with
    structured data types or unions as shown in the following program (which we recommend you download,
    compile and execute it):
#include <stdio.h>
#define NAME_LENGTH 10
#define TABLE_SIZE 100
#define UNITS_NUMBER 10
struct unit
{  /* Define a struct with an internal union */
  int x;
  float y;
  double z;
  short int a;
  long b;
  union
  { /* Union with no name because it is internal to the struct */
    char name[NAME_LENGTH];
    int id;
    short int sid;
  } identifier;
};
int main(int argc, char *argv[])
{
  int table[TABLE_SIZE];
  struct unit data[UNITS_NUMBER];
  printf("%d\n", sizeof(struct unit)); /* Print size of structure */
  printf("%d\n", sizeof(table));       /* Print size of table of ints */
  printf("%d\n", sizeof(data));        /* Print size of table of structs */
  return 0;
}
With this function you may solve any doubt you might have
    about the size of any data structure. You simply write a program that prints
    its size with sizeof().