Introdução:
Digressão: Aprender 1. ponteiros, 2. estruturas e 3. alocação dinâmica de memória é útil para aprender estruturas de dados.
Hoje em dia, quando escrevemos código, vamos solicitar espaço no computador, e agora só existe uma forma de solicitar espaço que aprendemos, uma é int (aplicando em pequenos pedaços), e a outra é int [] ( um Aplicar em pedaços).
Porém, o espaço solicitado pelo nosso método é fixo e o tamanho não pode ser alterado, o que não é conveniente.
Na linguagem C, temos a capacidade de aumentar ou diminuir o tamanho da memória que aplicamos. É isso que o gerenciamento dinâmico de memória faz. Entre eles, os mais importantes no gerenciamento dinâmico de memória são malloc, calloc, ralloc e free.
A seguir, vamos aprender a função malloc.
A definição da função malloc pode ser encontrada em cplusplus.com:
Após a verificação, após usar malloc, um espaço de tamanho size será aberto e um ponteiro será retornado apontando para a posição inicial do bloco de memória. Ao solicitar espaço, a inscrição falhará? Após a falha do aplicativo, um ponteiro nulo será retornado. Se size for 0, o comportamento da função malloc é indefinido e depende do compilador.
A função free é usada para liberar memória alocada dinamicamente: 1. Se o espaço apontado pelo parâmetro ptr não for alocado dinamicamente, o comportamento da função free é indefinido; 2. Se o parâmetro ptr for um ponteiro NULL, a função não nada.
Abaixo está o código escrito para usar a função malloc:
Deixe-me apresentar o que é INT_MAX? Depois de passarmos à definição, são mais de 2,1 mil milhões.
Vamos explicar que o espaço solicitado pelo int e o espaço solicitado pela função malloc estão em áreas diferentes:
A função malloc corresponde à função free.Depois de feita a aplicação da memória, o espaço aplicado precisa ser liberado, para não causar vazamento de memória (em termos leigos, você pegou um livro emprestado, mas não o trocou, então outros não conseguem ver). Não há espaço livre no código acima, o que não significa que o espaço de memória não será recuperado.Quando o programa for encerrado, o sistema irá recuperar automaticamente o espaço de memória.
A função free é usada para liberar o espaço solicitado. Após a liberação do espaço, p também aponta para o endereço retornado pela função malloc.Se p não for apontado para nulo, p se tornará um ponteiro selvagem.
Malloc e free devem aparecer em pares tanto quanto possível para evitar vazamentos de memória.
Agora estamos escrevendo um loop infinito para solicitar espaço. O computador não liberará espaço incontrolavelmente e não fará com que ele trave. Se houver um vazamento de memória em um programa que precisa ser executado 7 vezes em 24 horas, será muito assustador e o sistema precisará ser reiniciado em alguns dias.