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;
}
#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.