Ir ao conteúdo
  • Cadastre-se
adriani santos

Vetor estático

Recommended Posts

Boa noite!! Preciso de ajuda nos exercícios abaixo, agradeço desde já.

Exercício:

 

1 - Criar um vetor estático que tenha em cada posição, a referência para uma variável que teve memória alocada dinamicamente.

 

2 - Criar um vetor estático que tenha em cada posição, a referência para outro vetor alocado dinamicamente. Em cada posição pode existir um vetor de tamanho diferente. Você deverá saber qual o tamanho do vetor armazenado naquela posição para poder percorrê-lo. Dica: Vetor de structs?!?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

A 1 eu fiz assim:

#include<stdio.h>
#include<stdlib.h>

int main (){

int *v;
v = (int*)malloc( 4 * sizeof(int*) );

if (v == NULL) {
    printf("erro:sem memoria! \n");
        exit(1);
}

int i;
 for (i=0; i<4; i++){

    printf("digite v[%d]\n", i);
    scanf("%d",&v);
 }

 system("pause");
 free(v);
 return 0;
}
 

não sei se está correto.

Mas estou tendo muita dificuldade para fazer a 2, não sei como fazer tem como me ajudar?? 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz dessa forma:

 

#include <stdio.h>
#include <stdlib.h>

int main (void)
{
    int *v;
    int i=0;
    printf("\n\nFavor informe a quantidade de numeros que deseja armazenar:\n\n");
    scanf("%d", &i);

    v=(int*)malloc(i*sizeof(int));

    if (v == NULL)
    {
        printf("\n\nNao existe memoria suficiente\n\n");
        system ("pause > NULL");
        exit (1);
    }

    int cont;

    for(  cont=0;cont<i;cont++)
    {
        printf("\n\nNumero %d: %d", cont+1, &v[cont]);
    }
}
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@CiroboyBR tens como me ajudar nessa aqui, não sei fazer  - Criar um vetor estático que tenha em cada posição, a referência para outro vetor alocado dinamicamente. Em cada posição pode existir um vetor de tamanho diferente. Você deverá saber qual o tamanho do vetor armazenado naquela posição para poder percorrê-lo. Dica: Vetor de structs. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@adriani santos Pensei em estrutura porque a questão não fala qual o tipo da variável. Você pode fazer com struct:
 

#include <stdio.h>
#include <stdlib.h>

struct ponteiro {
  int *p;
} ponteiro;


main() {
  struct ponteiro P[5];
  int v1[5] = {1, 1, 1, 1, 1};
  int v2[5] = {2, 2, 2, 2, 2};
  int v3[5] = {3, 3, 3, 3, 3};
  int v4[5] = {4, 4, 4, 4, 4};
  int v5[5] = {5, 5, 5, 5, 5};

  P[0].p = &v1;
  P[1].p = &v2;
  P[2].p = &v3;
  P[3].p = &v4;
  P[4].p = &v5;

  int i;
  for ( i = 0; i < 5; i++ )
    imprime_vetor( P[i].p );

}

void imprime_vetor( int *v ) {
  int i;

  printf( "\nVetor: " );
  for ( i = 0; i < 5; i++ )
    printf( "%d " , v[i] );

}

ou sem struct, criando um vetor de ponteiros:

#include <stdio.h>
#include <stdlib.h>


main() {
  int *P[5];
  int v1[5] = {1, 1, 1, 1, 1};
  int v2[5] = {2, 2, 2, 2, 2};
  int v3[5] = {3, 3, 3, 3, 3};
  int v4[5] = {4, 4, 4, 4, 4};
  int v5[5] = {5, 5, 5, 5, 5};

  P[0] = &v1;
  P[1] = &v2;
  P[2] = &v3;
  P[3] = &v4;
  P[4] = &v5;

  int i;
  for ( i = 0; i < 5; i++ )
    imprime_vetor( P[i] );

}

void imprime_vetor( int *v ) {
  int i;

  printf( "\nVetor: " );
  for ( i = 0; i < 5; i++ )
    printf( "%d " , v[i] );

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×