Ir ao conteúdo
  • Cadastre-se

Vetor estático


Posts recomendados

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?!?!

Link para o comentário
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?? 

 

Link para o comentário
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]);
    }
}
 

Link para o comentário
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. 

Link para o comentário
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] );

}

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...