Introdução
Na programação em C, nem sempre sabemos o tamanho inicial de um array (vetor) com antecedência. Nesses casos, usamos a alocação dinâmica de memória — um método de alocar memória somente quando necessário. malloc() é uma função usada na programação em C para alocar uma quantidade específica de memória necessária para um array ou uma variável que será usada em tempo de execução. Neste laboratório, aprenderemos como alocar memória dinamicamente usando malloc() e, em seguida, liberar o espaço de memória usando free().
Nota: Você precisa criar o arquivo
~/project/main.cpor conta própria para praticar a codificação e aprender como compilar e executá-lo usando o gcc.
cd ~/project
## create main.c
touch main.c
## compile main.c
gcc main.c -o main
## run main
./main
Incluir os arquivos de cabeçalho necessários
Nesta etapa, incluiremos os arquivos de cabeçalho necessários em nosso programa.
#include <stdio.h>
#include <stdlib.h>
Definir a função main()
Nesta etapa, definiremos a função main(). Nesta função, declararemos as variáveis necessárias para o programa.
int main()
{
int n, i, *ptr, sum = 0;
printf("\nEnter number of elements: ");
scanf("%d", &n);
Alocar memória dinamicamente usando malloc()
Nesta etapa, alocaremos memória dinamicamente usando malloc(). O tamanho da memória a ser alocada é determinado pelo produto do número de elementos e o tamanho de cada elemento usando o operador sizeof().
ptr = (int *) malloc(n * sizeof(int));
if(ptr == NULL)
{
printf("\nError! Memory not allocated.");
exit(0);
}
Armazenar valores na memória alocada
Nesta etapa, armazenaremos valores na memória alocada usando um loop.
for(i = 0; i < n; i++)
{
printf("\nEnter element %d: ", i + 1);
scanf("%d", ptr + i);
sum += *(ptr + i);
}
Imprimir os valores
Nesta etapa, imprimiremos os valores que foram armazenados.
printf("\nElements entered are: ");
for(i = 0; i < n; i++)
{
printf("%d ", *(ptr + i));
}
Liberar a memória
Nesta etapa, liberaremos a memória alocada usando free().
free(ptr);
Resumo
Neste laboratório, aprendemos como alocar memória dinamicamente usando malloc() e liberar o espaço de memória usando free(). Aprendemos como declarar variáveis na função main() e alocar memória usando malloc(). Também aprendemos como armazenar dados no espaço de memória alocado, imprimir os valores armazenados e, em seguida, liberar a memória alocada usando free().



