Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda em c


jayanson

Pergunta

Boa tarde galera estou com dificuldade para fazer um exercicio em c mas ate agora so quebrei a cabeça. alguém pode me ajudar ?

segue o que pede

Declare vetores de inteiro, char, float, double, long int com 5 posições, da seguinte forma:

int v[5] = {2,5,1,4,0};

char c[5] = {‘a’,’b’,’m’, ‘4’,’-‘};

float v[5] = {2.66, 0.125, 1.0, 4.99, 2.009};

Usando a função printf, com o argumento “%p”, e com vetores apontando para cada um dos tipos de

dados, descubra quantos bytes é alocado pelo seu compilador a cada tipo de dados. Não se esqueça que

para um vetor apontar para um vetor de float, ele deve ser do tipo float. Como se sabe que em um vetor

as posições são contínuas, se for impresso o endereço de duas posições, pela diferença entre os dois

endereços pode-se descobrir quantos bytes são alocados.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Basicamente, percorra cada vetor e dê um printf com o argumento %p.

O %p imprime o endereço da variável na memória (em hexadecimal).

Exemplo considerando vetores de 5 posições:

for(i=0;i<5;i++)
     printf("%p ", v[i]);

Link para o comentário
Compartilhar em outros sites

  • 0

fiz assim mas não deu certo pode verificar por favor ?

#include <stdio.h>

#include <stdlib.h>

main ()

{

int a[5]={2,5,1,4,0};

char b[5]={'a','b','m','4','-'};

float c[5]={2.66,0.125,1.0,4.99,2.009};

double d[5]={1.0e6,256000.45672,23e10,10000000.99999,123456.123456};

long int e[5]={123456789,999999999,22222222,11111111,987654321};

int x;

printf("A quntidade de bytes alocados para: \n");

printf("int a : %p-%p",&a[4]-&a[0]);

printf("\n \n");

printf("char b : %p %p",&b[4]-&b[0]);

printf("\n \n");

printf("float c : %p %p",&c[4]-&c[0]);

printf("\n \n");

printf("double d : %p %p",&d[4]-&d[0]);

printf("\n \n");

printf("long int e : %p %p",&e[4]-&e[0]);

printf("\n");

printf("%p",&a[0]);

system("pause");

return 0;

}

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que seria esse o programa, mas não te daria a quantidade de bytes alocados como disse o amigo;

#include <stdio.h>
main () 

{
   int a[5]={2,5,1,4,0};
   char b[5]={'a','b','m','4','-'};
   float c[5]={2.66,0.125,1.0,4.99,2.009};
   double d[5]={1.0e6,256000.45672,23e10,10000000.99999,123456.123456};
   long int e[5]={123456789,999999999,22222222,11111111,987654321};
   int i;
   printf("A quantidade de bytes alocados para: \n\n");
   for(i=0; i<5;i++)
   {
          printf("Vetor int a[%d]:%14p\n",  i ,a[i]);
          printf("Vetor char b[%d]:%13p\n", i , b[i]);
          printf("Vetor float c[%d]: %11p\n", i , c[i]);
          printf("Vetor double d[%d]: %10p\n", i , d[i]);
          printf("Vetor long int e[%d]: %p\n\n", i , e[i]);
   }
   getchar();
   return 0;
}

Editado por Dan Oliveira
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...