freeCodeCamp/guide/portuguese/cplusplus/dynamic-memory-allocation/index.md

2.7 KiB
Raw Blame History

title localeTitle
Dynamic Memory Allocation Alocação Dinâmica de Memória

Alocação de Memória Dinâmica em C ++

O que é alocação dinâmica de memória em C ++?

  • Alocação de memória em C ++ refere-se à memória alocada para as variáveis que você usa em todo o seu programa.
  • Alocação de Memória Dinâmica é a memória que é atribuída às variáveis no tempo de execução e a quantidade de memória requerida também é decidida no tempo de execução.
  • Essa memória vem do heap , enquanto variáveis não estáticas e variáveis locais obtêm memória da pilha .
  • Em C ++, o programador pode executar alocações de memória manualmente e é chamado como alocação de memória dinâmica .
  • Era possível em C fazer alocação de memória dinâmica, usando funções calloc e malloc para alocar memória e usar função livre para desalocar a memória dinâmica.
  • Em C ++, além de acima, há duas funções, new e delete para executar alocação de memória dinâmica e desalocação.

NOVO operador

  • new operador pode conceder a memória do programador do heap (se disponível). Se a memória solicitada pelo programador estiver disponível, o new operador inicializa a memória e retorna o endereço (referência) da memória alocada.
  • Sintaxe
    pointer-variable-type = novo data-type;
    Exemplo 1: int *ptr = new int;
    Exemplo 2: int *ptr2 = new int[10];
    Aqui, pointer-variable-type é um ponteiro de data type de data type . O data-type pode ser int, char, etc. ou tipo de dados definido pelo usuário.

Operador DELETE

  • É responsabilidade do programador des-alocar a memória alocada dinamicamente, caso contrário a memória não estará disponível para ser reatribuída até o final do programa.

  • Para desalocar a memória, o operador delete está disponível e pode ser usado pelo programador.

  • Sintaxe
    delete pointer-type-variable;
    Por exemplo, para liberar a memória alocada no exemplo 1 acima, nós digitamos:
    delete ptr;
    Da mesma forma, por exemplo 2, a memória pode ser liberada por:
    delete ptr2 ;

    Perdas de memória

    Os vazamentos são causados quando você não consegue desalocar a memória dinâmica alocada por meio do operador New no final do programa. Se você não desalocá-la com o operador delete, seu computador continuará criando nova memória no heap toda vez que o programa for executado. Isso faz com que o computador fique lento porque a memória não é excluída e a memória disponível diminui.