Nesse artigo nós falaremos sobre matriz alocada dinamicamente. Caso você tenha alguma dificuldade, recomendo que olhe também os artigos anteriores que falam sobre ponteiros e alocação dinâmica de vetores.
Matrizes são vetores bidimensionais que são conjuntos de variáveis do mesmo tipo, com um identificador comum e alocado de forma sequencial na memória.
Declaração:
tipo_de_variavel nome[linhas][colunas];
Para alocarmos uma matriz dinamicamente é necessário declarar um vetor de linha dinamicamente e em cada posição do vetor linha, declarar um novo vetor dinamicamente que será as colunas, ou seja, um vetor dentro de outro vetor (vetor bidimensional).
Exemplo:
#include <stdio.h>
#include<stdlib.h>
int main()
{
int x, y, m=3, n=4;
float **mat;
mat = (float**) malloc(m*sizeof(float*));
for(x = 0; x<m; x++)
mat[x] = (float*) malloc(n*sizeof(float));
for(x=0; x<m; x++)
for(y=0; y<n; y++)
mat[x][y] = y;
for(x=0; x<m; x++)
{
for(y=0; y<n; y++)
printf(“%.2f\t”, mat[x][y]);
printf(“\n”);
}
return 0;
}
Pronto você criou uma matriz alocada dinamicamente.
0sem comentários ainda