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

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

A função malloc () é usada na programação C para armazenar os dados na pilha, que é o armazenamento dinâmico de memória. É usado principalmente para a declaração dinâmica das matrizes e também pode ser usada para a criação de matrizes bidimensionais. As matrizes bidimensionais são usadas para plotar os valores na forma tabular com as colunas e linhas.

Nesta redação, aprenderemos a criar uma matriz bidimensional usando a função malloc () na programação C.

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

Em alguns programas específicos, geralmente não podemos prever o tamanho de uma matriz. Se atribuirmos os valores à matriz sozinhos, ela não poderá ser alterada durante a execução. Isso criará problemas, ou a memória ficará baixa para a matriz ou a matriz ocupará menos espaço desperdiçando a memória, para evitar isso, recomenda -se atribuir matrizes dinamicamente.

Na programação C, para alocação de memória dinâmica, diferentes funções são usadas. Uma delas é a função malloc (); Ele envia uma solicitação para a pilha para um bloco específico de memória e, se o heap tiver o espaço, ele responde alocando o bloco de memória solicitado ao Malloc ().

O malloc () ocupará o espaço do bloco de memória atribuído de acordo com a necessidade de um programa executado e após a execução bem -sucedida, esse espaço pode ser liberado usando a função gratuita ().

Como criar a matriz bidimensional usando a função MALLOC () na programação C

Antes da criação, considere a figura a seguir para obter uma melhor compreensão de como funciona a matriz bidimensional.

Na figura acima, podemos entender que em uma matriz bidimensional, primeiro os elementos serão fixados na primeira caixa da coluna após a linha correspondente será preenchida e depois a segunda linha da coluna e continua até Toda a matriz é preenchida como os primeiros elementos serão colocados em x [0] [0 [, então x [0] [1], então [0] [2], então x [0] [1], [1] [ 0], e então assim.

Consideraremos o seguinte exemplo básico de criação de uma matriz bidimensional usando o Malloc () na programação C. Criamos um arquivo de texto, cfile.C e digite o seguinte script nele:

#incluir
#incluir
int main ()
int linha = 5, col = 4;
int * a = (int *) malloc (linha * col * sizeof (int));
int i, j;
para (i = 0; i < row; i++)
para (j = 0; j < col; j++)
*(a + i*col + j) = i + j;
printf ("Os elementos da matriz são: \ n");
para (i = 0; i < row; i++)
para (j = 0; j < col; j++)
printf ("%d", *(a + i *col + j));

printf ("\ n");

grátis (a);
retornar 0;

Para compilar o programa acima, usaremos o compilador GCC:

$ GCC CFILE.C -O CFILE

Execute o cfile, qual é o arquivo compilado do cfile.c e exiba a saída:

$ ./cfile

No código acima, incluímos as bibliotecas do stdlib.h (para alocação de memória dinâmica) e stdio.H (para a entrada e saída), depois declaramos as variáveis ​​linhas, coluna, i e j. Após a declaração, chamamos o malloc () para atribuir a memória de acordo com os valores de "linha" e "coluna". Depois que a memória foi alocada, simplesmente usamos os dois loops aninhados para salvar os valores na matriz e, em seguida, usando o printf () no loop aninhado, exibimos os valores. No final, usamos o livre () para esvaziar o espaço ocupado atribuído na pilha por Malloc ().

Conclusão

Matrizes bidimensionais são semelhantes às matrizes unidimensionais, a única diferença entre as matrizes 1D e 2D é; As matrizes 2D armazenam os dados na forma tabular, e a matriz 1D armazena dados na forma de linhas. As matrizes são o básico das estruturas de dados e podem armazenar uma grande quantidade de dados do mesmo tipo de dados. Neste artigo, explicamos a criação da matriz bidimensional na memória dinâmica chamando a função malloc ().