estruturas de dados - bolinhabolinha · 3 alocação dinâmica técnica de gestão de memória...
Post on 13-Nov-2018
220 Views
Preview:
TRANSCRIPT
1
Estruturas de Dados
Alocação de Memória- Estática- Dinâmica
Prof. Rodrigo Rochaprof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com
Onde Estamos ? Ementa
• Introdução à estrutura de dados.• Alocação estática de memória. • Alocação dinâmica de memória. • Pilhas. • Filas. • Listas. • Algoritmos recursivos. • Árvores. • Grafos.
2
Alocação de Memória Memória
• Volátil• Não Volátil• Onde os dados são armazenados
Alocação de memória• COMO a memória será reservada
Tipos de Alocação• Estática• Dinâmica
Alocação Estática Ocorre na declaração de variáveis locais e
globais Vantagem
• Dados “contínuos na memória”• Facilita localização e manipulação
Desvantagem• Devemos conhecer o tamanho de memória que
iremos utilizar• Exemplo:Criar um vetor com a quantidade exata de elementos a
serem utilizados
3
Alocação Dinâmica Técnica de gestão de memória Evita problemas de alocação de memória
durante a execução do programa Aloca memória em tempo de execução Usada quando não sei ao certo quanto de
memória será necessário utilizada em
• Listas encadeadas, pilhas, filas, arvores binárias e grafos
comandos malloc
• Alocar uma região de memória de tamanho size de bytesvoid *malloc(size_t size)
free()• Liberar uma região de memória alocada com
mallocvoid free(void *ptr)
•
4
Exemplo
Temos um problema ? Vou criar um programa que receba as notas
dos alunos.
Qual o tamanho do vetor que devo declarar?
O que acontece (em relação a espaço) com as notas que não foram digitadas?
Será que terei memória o suficiente?
5
Solução Utilização de alocação dinâmica
Exercício Mostre o que os programas abaixo fazem. Dica: Mostre graficamente
onde os ponteiros apontam e seus valores para cada passo.
A-) void main(){
int *pta, *ptb;
pta = (int *)malloc(sizeof(int));ptb = pta; * pta = 5; printf("%d\n", * ptb); *ptb = 7; printf("%d\n", * ptb);
}
6
Exercício B-)
void main(){int *pta, * ptb; pta = (int *)malloc(sizeof(int)); ptb = (int *)malloc(sizeof(int)); * pta = 5;* ptb = 7; * pta = * ptb; printf("%d\n", * pta); }
Bibliografia Livro texto
• TENENBAUM, Aaron M; SOUZA, Tereza Cristina Félix de. Estruturas de Dados usando C. 1ª ed. São Paulo: MakronBooks,1995.
• PEREIRA, Silvio do Lago. Estrutura de Dados Fundamentais : conceitos e aplicações. 9ª ed. São Paulo: Érica, 2006.
• VELOSO, Paulo A. S.. Estrutura de Dados. 1ª ed. São Paulo: Campus, 1983.
Complementar• VILLA, Marcos Vianna. Estrutura de Dados : conceitos e técnicas de
implementação. 1ª ed. Rio de Janeiro: Campus, 1993. • WIRTH, Niklaus. Algoritmos e estruturas de dados. 1ª ed. Rio de
Janeiro: LTC, 1999• CORMEN, Thomas H.. ALGORITMOS : TEORIA E PRÁTICA. 2ª ed. Rio
de Janeiro: CAMPUS, 2002• SCHILDT, Herbert. C Completo e Total. 3ª ed. São Paulo: Pearson
Education, 2005
top related