freeCodeCamp/guide/portuguese/c/malloc/index.md

2.0 KiB

title localeTitle
malloc malloc

malloc em C

malloc () é uma função de biblioteca que permite que C aloque dinamicamente a memória do heap. O heap é uma área da memória em que algo é armazenado.

malloc () faz parte do stdlib.h e para poder usá-lo você precisa usar #include <stdlib.h> .

Usando Malloc

malloc () aloca memória de um tamanho solicitado e retorna um ponteiro para o início do bloco alocado. Para manter este ponteiro retornado, devemos criar uma variável. O ponteiro deve ser do mesmo tipo usado na instrução malloc.
Aqui vamos fazer um ponteiro para um conjunto de ints

int* arrayPtr; 

Ao contrário de outras linguagens, C não sabe o tipo de dados para o qual está alocando memória; precisa ser contada. Felizmente, C tem uma função chamada sizeof() que podemos usar.

arrayPtr = (int *)malloc(10 * sizeof(int)); 

Esta declaração usou malloc para separar memória para um array de 10 inteiros. Como os tamanhos podem mudar entre os computadores, é importante usar a função sizeof () para calcular o tamanho no computador atual.

Qualquer memória alocada durante a execução do programa precisará ser liberada antes do fechamento do programa. Para free memória, podemos usar a função free ()

free( arrayPtr ); 

Esta declaração desalocará a memória anteriormente alocada. C não vem com um garbage collector como outras linguagens, como Java. Como resultado, a memória não liberada corretamente continuará a ser alocada após o programa ser fechado.

Antes de você ir ...

Uma revisão

  • O Malloc é usado para alocação de memória dinâmica e é útil quando você não sabe a quantidade de memória necessária durante o tempo de compilação.
  • A alocação de memória permite que objetos existam além do escopo do bloco atual.
  • C passa por valor em vez de referência. Usando malloc para atribuir memória e, em seguida, passar o ponteiro para outra função, é mais eficiente do que ter a função recriar a estrutura.