Casa > Q > Quando As Funções Da Biblioteca Compartilhada São Carregadas Na Pilha (C, Memória, Memória Da Pilha, Desenvolvimento)?

Quando as funções da biblioteca compartilhada são carregadas na pilha (C, memória, memória da pilha, desenvolvimento)?

Não tenho certeza se você deve dizer que as bibliotecas compartilhadas são carregadas no Heap.
Deixe-me explicar da perspectiva do Windows.

>p>No Windows todo programa tem dois tipos de memória:ul>li>Shared - onde EXE e DLLs são carregadas. Compartilhado porque estas páginas de memória são compartilhadas entre outros processos.Private - esta é uma pilha que é alocada por programa para seus próprios dados privados. Essas páginas de memória só são visíveis para o processo de alocação.

Windows EXE suporta dois "tipos" de DLLs de carregamento:

>ul>>li>Implicit - DLLs são listadas dentro do cabeçalho do EXE e são carregadas ao mesmo tempo enquanto EXE é carregadoExplicit - DLLs carregadas a pedido do usuário em tempo de execução>p>Por muito tempo causa de vírus Windows introduziu ASLR (Address Space Layout Randomization) que carrega DLLs sempre em endereços diferentes. DLLs suportam link para endereço absoluto mas isso não é mais usado.

No Windows são duas técnicas de alocação de memória:

>ul>Virtual Memory - alocação de memória de nível mais baixo com todas as capacidades usando as funções do VirtualAllocHeap - todo processo tem um ou mais heaps criados pela função CreateHeap. O malloc do compilador Microsoft C++ chama o HeapAlloc para alocar memória a partir do heap default do processo. É claro, internamente o CreateHeap usa o VirtualAlloc.

De Abshier

O comprimento da prancha explica/resolve o paradoxo do Zeno? :: O que é melhor para os seus olhos, OLED ou LCD?