Ir ao conteúdo
  • Cadastre-se

Alocação de memória


Posts recomendados

Bom dia pessoal.

 

Sou novato na área de programação, e atualmente estou tendo muita dificuldade de compreender um exercício que meu professor da faculdade passou para entregarmos esta semana.

Agradeço a muito a quem poder me ajudar.

 

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

1)

Não estou seguro si é isso, use lazo for para implementar os exemplos eu farei sem para facilitar a comprençao.

int *vetor[3];
vetor[0] = (int*)malloc( sizeof(int*) );
vetor[1] = (int*)malloc( sizeof(int*) );

vetor[2] = (int*)malloc( sizeof(int*) );
//liberar é importante
free(vetor[0]);
free(vetor[1]);
free(vetor[2]);
//e por ultimo liberar o vetor
free(vetor);

2)

int *vetor[3];
vetor[0] = (int*)malloc( sizeof(int*)*10 );
vetor[1] = (int*)malloc( sizeof(int*)*10 );

vetor[2] = (int*)malloc( sizeof(int*)*10 );
//isso é igual a uma matriz de 3X10
vetor[1][7]= 100;
De vetor só tem o nome, vetor de vetores é uma matriz sempre.
O exemplo anterior não deixa de ser uma matriz, porém é uma matriz de 3X1, é algo estupido pois poderia ser un vetor mais fácil, por isso não sei se é isso o que ele quer realmente, porém é exatamente o que ele quer, o vetor guarda uma referencia a outra variável alocada dinamicamente. porém pense no estupido que seria você criar uma matriz parecida a essa: int matriz[3][1];, melhor diretamente fazer matriz[3]; por isso acho meio estupido heuhuehheu.
 

//cada um deve ser liberado igualmente que foi reservado.
free(vetor[0]);
free(vetor[1]);
free(vetor[2]);
//e por ultimo liberar o vetor
free(vetor);

Se puder comprovar com algum amigo antes de entregar faça, o a ver si alguém mais entra e nos da uma luz.

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