🧠 Memória e execução
Todo programa é um processo com um mapa de memória próprio: stack para frames de função, heap para alocação dinâmica, segmentos de código e dados. Entender esse mapa explica stack overflow, memory leak, dangling pointer e por que linguagens modernas precisam de GC ou ownership.
O mapa da memória
Código, dados, heap e stack — os quatro segmentos de um processo e como cada variável se encaixa em um deles.
Disponível 6.2A pilha de chamadas
Frames de função: veja fat(4) empilhando e desempilhando frames enquanto a recursão avança e retorna.
Disponível 6.3Heap e alocação dinâmica
malloc, free, fragmentação — e o que o alocador de memória faz por dentro quando você pede um bloco.
Disponível 6.4Ponteiros e referências
Endereços de memória, aritmética de ponteiro e a diferença entre copiar um valor e copiar uma referência.
Disponível 6.5Vazamentos e erros de memória
Leak, use-after-free, double free e buffer overflow: os erros que causam os exploits mais devastadores da história.
Disponível 6.6Coleta de lixo
Mark-and-sweep, contagem de referências e GC geracional: como Python, Java e Go liberam memória automaticamente.
Disponível