Entendendo a pilha e o uso da heap em C
Gerenciar a memória efetivamente é crucial na programação C. Ao determinar onde armazenar variáveis, é preciso decidir entre a pilha e a heap. A diferença chave está na vida útil das variáveis. Essas variáveis são destruídas automaticamente no retorno da função. Snippet:
Class Thingy; Thingy* foo () { int a; // inteiro alocado de pilha Coisa B; // objeto de coisa alocada em pilha Coish *pointertob = & b; // Ponteiro para o objeto alocado por empilhamento Thingy *pointertoC = new Thingy (); // objeto de coisa alocada por heap // Seguro: Thingy Alocada por Heap sobrevive Foo () Retornar PointertoC; // UNSABE: A coisa alocada da pilha será destruída no retorno foo () retornar pointertob; } Neste exemplo:
a e b são armazenados na pilha porque são locais para foo (). Foo (). na máquina subjacente. "Heap" e "Stack" são invenções do compilador, e a memória do computador é simplesmente uma variedade de endereços. Ao examinar conceitos como a pilha de chamadas e a convenção de chamadas, pode -se entender como a máquina executa funções e gerencia a memória.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3