Jump to content
Fórum Script Brasil
  • 0

Ajuda em c


jayanson

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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;
}

Edited by Dan Oliveira
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...