Please enable JavaScript.
Coggle requires JavaScript to display documents.
MM6 - Caps 21, 22, - Coggle Diagram
MM6 - Caps 21, 22,
DYNAMIC MEMORY ALLOCATION
Problema: programas não sabem quanto de memória precisarão
Estruturas fixas (stack/arrays estáticos) NÃO servem
Solução: Alocação dinâmica (heap)
Memória alocada em tempo de execução
Controle manual da memória
new -> alocar
delete -> liberar
erros
sem delete -> memory leak
delete errado -> crash
delete duplo -> comportamento indefinido
new -> CRIAÇÃO DINÂMICA
Tipos fundamentais
ptr = new tipo
ptr = new tipo(valor)
Classes
new Classe -> chama construtor
delete -> chama destrutor
new = memória + inicialização (construtor)
delete -> LIBERAÇÃO
Regras
só usar em memória de new
pode usar com NULL
nunca deletar 2x
nunca deletar memória estática
destrutor -> libera memória
ARRAYS DINÂMICOS
Criação: new Tipo[n]
Liberação: delete[] ptr
new[] exige delete[]
new exige delete
Linked Lists
Arrays:
precisam ser contínuos
custo alto para inserir/remover
Linked Lists:
memória não contínua
cresce/diminui dinamicamente
[dado | ponteiro → próximo]
Propriedades:
primeiro -> sem predecessor
último -> aponta para NULL