Conteúdo do Curso
Noções Básicas de C
Noções Básicas de C
Ponteiros estão ao nosso redor
Você provavelmente já está familiarizado com a ideia de ponteiros a partir de suas experiências diárias. Pense em como sua casa tem um endereço único. É por meio deste endereço que você recebe pacotes da Amazon, cartas e aquela pizza que acabou de pedir. Essencialmente, para alcançar você, pessoas e serviços utilizam o endereço de sua casa.
Quando uma casa muda de dono, é essencial atualizar os registros para refletir os detalhes do novo proprietário. E se a sua família crescer, é crucial adicionar os novos membros aos registros associados ao endereço.
Os registros de propriedade imobiliária estão constantemente sendo atualizados. Alguns dados são modificados, outros deletados, enquanto novos detalhes são acrescentados.
Vamos considerar outro exemplo - desenvolver um sistema de segurança para seu escritório. O desenvolvedor pode não saber o número exato de funcionários que você terá. Então, no código, ele pode alocar espaço para 100 funcionários:
Essa configuração é bastante básica e inerentemente limitada desde o início.
Mas e se sua empresa expandir, lançando um novo departamento, e recrutar 30 novos funcionários qualificados, elevando o total para 130? No entanto, o sistema de segurança está configurado apenas para reconhecer 100. Você reformula todo o sistema de segurança ou dispensa as novas contratações? Esse dilema é resolvido por meio da alocação dinâmica de memória.
Alocação dinâmica de memória
Na linguagem C, existem três tipos de alocação de memória:
- Alocação estática, que acontece no momento da compilação. Por exemplo, quando o compilador percebe que você declarou uma variável
int
, ele aloca 4 bytes para ela. - Alocação automática de memória ocorre dentro de funções, particularmente quando variáveis são declaradas dentro dessas funções.
- Alocação dinâmica de memória destaca-se porque a memória é atribuída não na etapa de compilação, mas durante a execução real do seu programa.
A alocação dinâmica de memória dá ao programador controle total, pois ele supervisiona tanto a alocação quanto a desalocação de memória. Essa abordagem permite que um programador otimize significativamente o desempenho de um programa, com ponteiros desempenhando um papel decisivo nesse processo.
Obrigado pelo seu feedback!