Como funcionam os alocadores de memória do STD C? [Artigo] - página 2
[ Hits: 36.552 ]
Como funcionam os alocadores de memória?
Os alocadores de memória do Standard C têm os seguintes protótipos:
Todos devolvem um ponteiro para a área de memória alocada ou um ponteiro inválido informando que não existe mais memória disponível para se alocada. Aqui cabe uma primeira dica: nunca confie que estas funções vão sempre devolver um ponteiro válido. Sempre verifique o retorno das funções a fim de constatar que a memória requerida foi realmente alocada. É comum problemas onde o programa é executado em um ambiente restritivo onde a quantidade de memória que pode ser alocada por um processo é limitada por um administrador de sistema. Esta situação é muito comum em ambientes de produção Unix.
Visto os protótipos das funções, aqui vão como as mesmas funcionam:
calloc aloca blocos de memória que contém nmemb ítens de tamanho size bytes. Esta função é excelente para alocar vetores de estruturas de dados.
malloc aloca um bloco contíguo de memória de tamanho size bytes. É a função mais popular da biblioteca Standard C.
realloc tenta redimensionar a memória que é apontada por ptr para o tamanho size bytes. Se ptr for um ponteiro nulo, realloc funciona exatamente igual a malloc.
Quando se fala em alocação de memória, estamos falando, na verdade, de como interfacear seu programa com o sistema operacional, pois efetivamente quem lhe dará memória é o sistema operacional. Estas funções, conforme dito anteriormente, são abstrações que encobrem a forma como irão chamar o sistema operacional a fim de obter mais memória para o seu programa. Porém, para qualquer implementação da biblioteca Standard C, estas funções têm um comportamento igual: o gerenciamento da lista livre.