***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:
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.