Tamantipo - Mostra o tamanho dos tipos: char, int, float...

Publicado por Jean Landim (última atualização em 10/02/2011)

[ Hits: 10.542 ]

Homepage: about:blank

Download tamantipo.c




Titulo auto-descritivo.

  



Esconder código-fonte

/*
 * tamantipo.c - Mostra o tamanho dos tipos: short/long int, char, float 
 *               e double
 * 2011 - (GPL) Jean Landim - <jewanbb@gmail.com>
 */
#include<stdio.h>
int main()
{
   char *tipos[6];
         tipos[0] = "char";
         tipos[1] = "int";
         tipos[2] = "float";
         tipos[3] = "long int";
         tipos[4] = "double";
         tipos[5] = "short int";
   int roda = 0;

   for(roda;roda<5;roda++)
       printf("O valor de %s é %d bytes\n",tipos[roda],sizeof(tipos[roda])); 
}
   

Scripts recomendados

Jogo da velha em C purinho

Jogo da forca

Equação do segundo grau

Trabalhando com argumentos e ponteiros

Operações com vetor (soma, subtração e multiplicação) em C


  

Comentários
[1] Comentário enviado por vinipsmaker em 10/02/2011 - 16:10h

Analisando seu código:
tipos é um array (logo, é um ponteiro constante) de ponteiros/strings.
o operador sizeof recebe como argumento um tipo (não um valor ou uma string) e retorna o espaço ocupado pelo tipo.
no seu código, você usa o operador sobre o tipo da variável tipos, então, o mesmo valor vai ser sempre retornado, que é o valor do espaço ocupado por um ponteiro (aqui na minha máquina 8 bytes)

Então, você precisa estudar um pouco mais de C, e enviar esse código pra cá ajudou que alguém corrigisse seu erro =p

Uma das possíveis formas de ter feito isso seria:

char *tipos_str[] = {"int", "char" /*...*/};
int tipos_tam[] = {sizeof(int), sizeof(char)};

printf("...%s ... %i\n", tipos_str[i], tipos_tam[i]);


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts