Ir ao conteúdo
  • Cadastre-se

Eric MGS

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

posts postados por Eric MGS

  1. 9 horas atrás, TYSQUARE89 disse:

    @Eric MGS Em uma string só há char's(caracteres) relacionado a um decimal da tabela ascii, portanto sizeof(char) tem a mesma quantidade de bytes que sizeof(int)

     

    Para ter os bytes de cada tipo, da string, você precisa separar esses valores, seja com scanf, etc, armazenar em uma variável temporária e depois usar sizeof

     

    Você quis dizer pra fazer algo assim?

    Continua dando errado.

    void main (void){
        char temp[5];
        scanf("%s",temp);
        int tamanho = sizeof (temp);
        printf("Tamanho: %i", tamanho);
    }

     

  2. //Programa que imprime a memória utilizada por tipos de dados
    #include <stdio.h>
      
    void rotina (char texto[6]) {
        int tamanho = sizeof (texto);
        printf ("%s:\n",texto);
        printf ("Tamanho em bytes: %i\n\n",tamanho);
    }
    
    void main (void){
        rotina ("char");
        rotina ("int");
        rotina ("float");
    }

    Boa noite,

    Estou querendo fazer um programa que imprima a quantidade de memória em bytes que cada tipo de dados ocupa (porque em máquinas diferentes os valores podem ser diferentes).

    Inicialmente escrevi o código apenas com a função main, repetindo o printf para cada tipo de dado, da seguinte forma:

    ...

       printf ("Tamanho em bytes: %i \n", sizeof (char);

       printf ("Tamanho em bytes: %i \n", sizeof (int);

    ...

    Deu certo,

    Porém depois decidi tentar usar uma outra função para não precisar repetir o printf e fiz da maneira em que coloquei o código aqui.

    O retorno que o programa está dando é sempre 4 bytes, ou seja, o tamanho de char texto[6].

    Já percebi que o problema é que em sizeof (texto) o valor que está sendo devolvido é o tamanho da variável texto,

    mas gostaria que no lugar de texto fosse inserido o conteúdo da variável, ou seja, as strings "char", "int" , "float" , para que fosse retornado o tamanho de cada tipo de dado respectivo.

    Tentei escrever no lugar de sizeof (texto) assim:

    sizeof ("%s",texto);

    Porém não deu certo.

    Gostaria de saber se existe alguma maneira de que no parâmetro de sizeof fosse inserido o conteúdo da variável (string) e não a própria variável.

    Agradeço se alguém souber responder.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!