Função Malloc de gerenciamento dinâmico de memória

 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. 

Acho que você gosta

Origin blog.csdn.net/2301_77868664/article/details/130837228
Recomendado
Clasificación