Como criar uma matriz usando Malloc em programação C

Como criar uma matriz usando Malloc em programação C

Na programação C, a matriz é usada para armazenar uma variedade de valores do mesmo tipo de dados e ocupa algum espaço na memória que pode ser estático ou dinâmico. O malloc é uma função usada na programação C para alocação de memória dinâmica.

Neste artigo, aprenderemos sobre a função malloc para criar uma matriz na programação C.

O que é um malloc () na programação C

A memória dinâmica é alocada para o programa durante sua execução de acordo com o espaço necessário. Na memória estática, a memória fixa é alocada ao programa antes da execução do programa, que tem as seguintes desvantagens:

  • A matriz declarada com o tamanho fixo ocupará o tamanho fixo na memória do sistema
  • Se a matriz tiver valores menores que o tamanho declarado, o espaço livre será desperdício e não poderá ser usado por outro programa
  • Se a matriz tiver valores mais do que o tamanho declarado, o programa poderá dar erros

Para evitar essas desvantagens, usaremos o esquema de alocação de memória dinâmica, pois esse esquema atribuiremos a memória do bloco necessário pelo programa durante sua execução. A memória dinâmica tem diferentes funções usadas como um ponteiro para o programa.

A função malloc () significa "alocação de memória" e é usada para alocação de memória dinâmica durante a execução do programa. Quando a função malloc () é chamada, ele envia uma solicitação de um bloco de memória para a pilha (é um segmento de memória em que a memória é alocada aleatoriamente). Se o heap tiver memória equivalente a esse bloco de memória, ele aceitará a solicitação e atribuirá esse tamanho à função MALLOC () contra sua solicitação e, se não tiver memória, ele retornará o valor nulo. Quando terminamos o bloco de memória, podemos limpá -lo usando a função FREE () para que o bloco de memória possa ficar livre e ser usado pelas outras instruções do programa. Para alocação de memória dinâmica, temos que incluir o “stdlib.H ”em arquivos de cabeçalho e a sintaxe geral do uso da função MALLOC é:

1
$ pointer = (CastType*) Malloc (tamanho);

Podemos usar qualquer variável em vez de "ponteiro", então podemos substituir o "CastType" pelo tipo de dados cujos valores vão armazenar na matriz. Em seguida, use a função Malloc () e mencione o tamanho da memória que precisávamos.

Como usar a função malloc na programação C para criar uma matriz

Para uma melhor compreensão da criação de uma matriz usando a função malloc (), criaremos um programa. Para usar a programação C no Linux, precisamos instalar o compilador GCC usando o comando:

1
$ sudo apt install gcc

Crie um arquivo de texto usando o Nano Editor:

1
$ nano myfile.c

Digite o seguinte código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# inclua # incluir
int main (vazio)

Int tamanho, i, *my_array;
printf (“\ n por favor digite o tamanho da matriz:”);
scanf ("%d", & size);
my_array = (int *) malloc (tamanho * sizeof (int));
printf (“\ n digite os valores da matriz:”);
para (i = 0; iscanf ("%d", & my_array [i]);
printf (“\ n Os valores na matriz são:”);
para (i = 0; iprintf ("%d", my_array [i]);
printf ("\ n");

Salve o script pelo nome de “myfile.C ”usando o Ctrl+S e depois saia do editor pressionando Ctrl+X. Depois de salvá -lo, compila o código e verifique se há algum erro ou não usando o comando:

1
$ gcc myfile.C -O MyFile

O "MyFile" será um arquivo executável, execute o "myfile" usando o comando:

1
$ ./meu arquivo

O programa foi executado com sucesso. A explicação do código acima é como:

  • Incluímos as bibliotecas de C que são stdlib.h para a alocação dinâmica de memória e stdio.h Para outras funções como printf e scanf
  • Inicializamos o corpo principal do programa com vazio porque a função não retornará um valor
  • Declaramos duas variáveis ​​do tamanho, eu e um ponteiro “*my_array
  • Simplesmente usou o printf comando para imprimir o “Por favor, insira o tamanho da matriz”E salvou a entrada do usuário na variável“tamanho
  • Em seguida, usando a função malloc, solicitou a pilha para atribuir memória de acordo com o valor armazenado no “tamanho”Variável e atribuiu a memória à matriz
  • Pediu ao usuário que insira os valores da matriz e os guarde em uma matriz usando o loop for for loop
  • Finalmente, imprimiu todos os valores de my_array Usando o loop for

Conclusão

A função malloc () é usada na alocação de memória dinâmica e também pode ser usada para armazenar valores na matriz. Nesta redação, discutimos como declarar e usar a matriz usando a função malloc (). A abordagem de alocação de memória dinâmica é recomendada quando você deseja alterar o tamanho de uma matriz durante a execução do programa.