Ponteiros

Considere uma cozinha comercial que ofereça serviço de quentinhas, as quais são pratos de refeições completos servidos a empregados e fornecidos usualmente em pratos de alumínio descartável. Suponha que a quantidade de pedidos varie bastante ao longo dos dias e que os recipientes (porta-quentinhas que armazenam os pratos de alumínio) utilizados para acondicionamento das quentinhas não são baratos. O comerciante decide por alugar estes recipientes sob demanda, ou seja, à medida que pedidos são solicitados ele aluga recipientes na mesma proporção. Os aluguéis são diários e é fundamental que o comerciante solicite a retirada destes recipientes para que não seja computado um novo aluguel. Ao longo do dia, a cozinha pode reutilizar tantas vezes quanto quiser um recipiente.

Na programação, ponteiros são endereços de memória utilizados para referenciar áreas onde valores são armazenados. Tipicamente, estas áreas de memória são alocadas de forma dinâmica, ou seja, durante a execução do programa e numa quantidade previamente indeterminada. Esse mecanismo é útil porque permite, para programas que utilizem volumes grandes de informação de forma eventual, maior flexibilização na reserva de espaço em memória. Ou seja, o programador pode escolher o que é reservado estaticamente (alocação fixa, que perdura durante toda a execução do programa) e o que é reservado dinamicamente (alocação variável, onde não se sabe quando uma área de memória será reservada e que tamanho ela terá). Este último caso é exatamente a situação das quentinhas, pois o comerciante não tem idéia de quantas quentinhas serão pedidas num dado dia. O pedido explicíto de retirada dos recipientes de quentinhas é a remoção das áreas de memórias alocadas dinamicamente, passo fundamental para que a memória disponível para um programa não se esgote. Na cozinha, seria termos tantos recipientes desperdiçados a ponto da venda começar a dar prejuízos.

Esta questão do desperdício é tão crucial na cozinha quanto na programação. Para resolver o problema deste último, muitas linguagens de programação oferecem um mecanismo chamado coleta de lixo. Este mecanismo monitora as áreas de memória e remove as que não são mais referenciadas à partir de algum ponto num programa. Na cozinha, é como se o serviço que oferece os recipientes controlasse automaticamente os aluguéis e já agendasse a retirada ao final do dia.

results matching ""

    No results matching ""