Pular para o conteúdo

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

Titulo auto-descritivo.
Jean Landim jeanlandim
Hits: 10.941 Categoria: C/C++ Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Titulo auto-descritivo.
Download tamantipo.c Enviar nova versão

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])); 
}
   

Como fazer raízes a partir de 2 e 3 no c.

Criando bibliotecas e c/c++

Caixa eletronico em C

Gerando Matriz aleatoriamente

Transformação de Matriz em Matriz Transposta

#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

Entre na sua conta para comentar.