Tamantipo - Mostra o tamanho dos tipos: char, int, float...
Titulo auto-descritivo.
Descrição
Titulo auto-descritivo.
/*
* 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]));
}
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]);