No caso de utilizarmos Estruturas de Dados de alocação estática, o que ocorre quando o programador definiu um Vetor de grande dimensão, e em tempo de execução do programa não existem posições sequenciais de memória que estejam livres para esta alocação?
2ºO que ocorre quando o programador definiu um Vetor de grande dimensão, que em tempo de execução do programa ocorreu alocação de toda a memória necessária, porém foi utilizado apenas 10% da memória alocada?
• O que ocorre em cada uma das situações acima colocadas?
• Qual a solução que você propõe?
Soluções para a tarefa
1) Quando não existe memoria (sequencial) suficiente para a alocação, então o sistema espera ser liberado espaço até que se consiga memória livre de tamamnho suficiente para alocar o vetor.
Ou seja, esta memória não será alocada e o programa terá de esperar até que ela possa ser alocada.
2) Quando o vetor de grande dimensão é alocado, mas não é totalmente utilizado o restante da memória (neste caso, 90% restantes) continuam alocados e não poderão ser utilizados por nenhum outro processo até a finalização deste programa.
Na primeira situação, ocorre uma "lerdeza" por parte do programa que tem que esperar para alocar a memória.
Na segunda situação, ocorre desperdício de recursos.
Uma das soluções possíveis é o uso de memória dinamicamente alocada