Baixe o app para aproveitar ainda mais
Prévia do material em texto
LISTA DE EXERCÍCIOS 05 TEÓRICOS 1) Ano: 2012 / Banca: INSTITUTO CIDADES / Órgão: TCM-GO / Prova: Auditor de Controle Externo - Informática A alocação de memória está dividida em partes. Em qual parte a decisão da alocação é tomada quando o programa é compilado? a) Alocação Dinâmica; b) Alocação Estática; c) Alocação Híbrida; d) Alocação Local; e) Em todas as partes. 2) Ano: 2013 / Banca: MB / Órgão: QC / Prova: Engenheiro da Computação Assinale a opção que apresenta as duas funções básicas realizadas pelo gerenciador de memória no espaço livre da memória HEAP. a) Alocação e Liberação. b) Busca e Compactação. c) Ajuste e Reposicionamento. d) Ordenamento e Compactação. e) Balanceamento e Redistribuição. 3) Discuta, passo a passo, o efeito do seguinte fragmento de código: int *p, *q; p = malloc (sizeof (int)); *p = 123; q = malloc (sizeof (int)); *q = *p; q = p; free (p); free (q); // má ideia... q = NULL; // boa ideia PRÁTICOS 1) Verificação do tamanho. Compile, execute e analise o seguinte programa: typedef struct { int dia, mes, ano; } data; int main (void) { printf ("sizeof (data) = %d\n", sizeof (data)); printf ("sizeof (data *) = %d\n", sizeof (data *)); return 0; } 2) Usando as funções malloc e free, escreva uma função que receba um caractere c e transforme c em uma string (cadeia de caracteres), ou seja, devolva uma string de comprimento 1 tendo c como único elemento. 3) EUsando as funções malloc e free, escreva um programa que leia um número inteiro positivo n seguido de n números inteiros e imprima esses n números em ordem invertida. Por exemplo, ao receber 5 222 333 444 555 666 o seu programa deve imprimir 666 555 444 333 222 O seu programa não deve impor limitações sobre o valor de n.
Compartilhar