sfghrfhnd
1659 palavras
7 páginas
Passo 1 - Alocação dinâmica de memória(Mauricio da Silva Oliveira)
A alocação dinâmica de memória baseia-se em requisitar espaços da memória em tempo de execução, com esse recurso agente não precisa mais dimensionar um vetor na representação de listas, filas e pilhas, pois quando se dimensiona um vetor agente precisa saber de antemão o quanto de espaço deve ser usado para a alocação da memória, o que acaba gerando desperdícios na memória do programa. Informalmente, podemos dizer que existem três maneiras de reservar espaço em memória, são elas: variáveis globais, variáveis locais e em tempo de execução. Nesse modo de reservar espaço de memoria em tempo de execução, o espaço alocado dinamicamente permanece reservado até que seja explicitamente liberado pelo programa. Por isso, podemos alocar dinamicamente um espaço de memoria em uma função e acessa-lo em outra.
Existem funções, presentes na biblioteca padrão stdlib, que permitem alocar e liberar memória dinamicamente, são elas: a função malloc que serve para alocar memoria e a função free que serve para liberar a memoria alocada.
A função malloc recebe como parâmetro o numero de bytes que se deseja alocar e retorna o endereço inicial da memoria alocada, além disso a função malloc é usada para alocar espaço para armazenar valores de qualquer tipo.
A função free recebe como parâmetro o ponteiro da memoria a ser liberada, só se pode passar para a função free um endereço de memoria que tenha sido alocado dinamicamente e não se pode acessar o espaço da memoria depois de liberado.
Passo 3 – Lista simplesmente encadeada
(Mauricio da Silva Oliveira)
Em uma lista encadeada, o espaço total de memoria gasto é proporcional ao numero de elementos armazenados, pois para cada elemento inserido é alocado um espaço na memoria para armazena-lo. Para percorrer todos os elementos da lista, devemos explicitamente guardar seu encadeamento, junto com a informação de cada elemento, um ponteiro para o próximo elemento da