Alocação dinâmica

  1. $ \bigstar$ O que retorna a função malloc()?

    Resposta: a função malloc() retorna um ponteiro genérico (tipo void) e por isso é que precisa, geralmente, ser convertido (casting).

  2. $ \bigstar$ (Prova EST/2010-2) O programador está tentando declarar um ponteiro e alocar uma quantidade de memória para ele com o código abaixo, mas isto não está funcionando. O que está errado? O que deveria ser mudado para funcionar?

    int *p

    *p = (int *) malloc (sizeof(int))

    Resposta: o problema está na segunda linha. O erro é que o retorno da função malloc() é um endereço de memória e deve ser aplicado diretamente ao ponteiro, mas a segunda linha está como *p. Para fazer o código funcionar bastaria tirar o asterisco.

  3. $ \bigstar\bigstar$ Explique duas diferenças entre os comandos malloc() e calloc().

  4. $ \bigstar\bigstar\bigstar$ Escreva um programa em C que cria uma matriz cujas dimensões serão escolhidas pelo usuário. Essa matriz receberá todos os valores e apenas os números pares devem ser colocados em um vetor especial que seja suficiente apenas armazenar a quantidade de números pares.

  5. $ \bigstar\bigstar\bigstar$ Escreva um programa que cria um vetor de tamanho a escolha do usuário e então preencha com números inteiros. Em seguida, elimine todos os números primos do vetor e o realoque somente com o que o sobrou. Ao final imprima o vetor resultante.

  6. $ \bigstar\bigstar$ Escreva um programa que solicita ao usuário a quantidade de alunos de uma turma e aloca um vetor de notas (números reais). Depois de ler as notas, imprime a média aritmética. OBS: não deve ocorrer desperdício de memória e após ser utilizada a memória deve ser liberada.

  7. $ \bigstar\bigstar$ Desenvolva um programa que calcule a soma de duas matrizes MxN de números reais. A implementação deste programa deve considerar as dimensões fornecida pelo usuário.

  8. $ \bigstar\bigstar\bigstar$ (Prova EST/2014-1) Escreva um programa em C que leia as notas de 15 alunos e grave essas notas em um vetor A. Em seguida, deve-se criar um vetor B e preenchê-lo apenas com as notas dos alunos que estejam acima da média da turma. Não deve ocorrer desperdício de memória na criação do vetor B. Ao final o programa deverá imprimir os elementos do vetor B.

    Solução: ADMediaTurma.c

  9. $ \bigstar\bigstar\bigstar$ (Prova EST/2014-1) Escreva um programa em C que permita ao usuário preencher uma matriz A de tamanho 3 x 3. Em seguida o programa deverá criar um vetor B preenchendo apenas com os valores da matriz A que sejam primos. Não deve ocorrer desperdício de memória na criação do vetor B. Ao final o programa deverá imprimir os elementos do vetor B.

    Solução: ADSelecionaPrimos.c

Tiago Eugenio de Melo 2014-03-31