Operador sizeof

Existe um operador em C que indica o tamanho em bytes que uma determinada variável está utilizando na memória. Pode-se também colocar um determinado tipo como parâmetro que o resultado será o mesmo.

Este operador é muito utilizado quando se faz alocações dinâmicas de memória ou movimentações diretas na memória.

Observações:

  • Nas especificações atuais da linguagem C, o long e o int tem o mesmo tamanho e o modificador long não altera o tamanhos do float.
  • Uma variável não precisa ter o seu conteúdo especificado para se obter o seu tamanho.
  • O operador pode ser utilizado direto com o tipo da variável.

Veja o exemplo:

#include <stdio.h>
int main (void)
{
   int                   a;
   short int             b;
   long int              c;
   unsigned int          d;
   unsigned short int    e;
   unsigned long int     f;
   float                 g;
   double                h;
   long double           i;
   char                  j;
 
   printf("Tamanho do a : %d\n", sizeof(a));
   printf("Tamanho do b : %d\n", sizeof(b));
   printf("Tamanho do c : %d\n", sizeof(c));
   printf("Tamanho do d : %d\n", sizeof(d));
   printf("Tamanho do e : %d\n", sizeof(e));
   printf("Tamanho do f : %d\n", sizeof(f));
   printf("Tamanho do g : %d\n", sizeof(g));
   printf("Tamanho do h : %d\n", sizeof(h));
   printf("Tamanho do i : %d\n", sizeof(i));
   printf("Tamanho do j : %d\n", sizeof(j));
 
   printf("Tamanho do int                : %d\n", sizeof(int));
   printf("Tamanho do short int          : %d\n", sizeof(short int));
   printf("Tamanho do long int           : %d\n", sizeof(long int));
   printf("Tamanho do unsigned int       : %d\n", sizeof(unsigned int));
   printf("Tamanho do unsigned short int : %d\n", sizeof(unsigned short int));
   printf("Tamanho do unsigned long int  : %d\n", sizeof(unsigned long int));
   printf("Tamanho do float              : %d\n", sizeof(float));
   printf("Tamanho do double             : %d\n", sizeof(double));
   printf("Tamanho do long double        : %d\n", sizeof(long double));
   printf("Tamanho do char               : %d\n", sizeof(char));
 
   return 0;
}

Marcos Laureano 2008/04/25 10:23

sizeof.txt · Última modificação: 2008/04/25 10:36 por laureano
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0