Alocação dinâmica de memória em matrizes em C
Uma matriz de tamanho dinâmico em C é implantada a
partir de vetores contidos em vetores. Exemplificando, uma matriz 2x3 teria em
cada uma das duas linhas, um vetor de 3 posições formando assim três colunas.
Sendo declarada como um ponteiro de ponteiro (por
exemplo, int **matriz), para a sua alocação é necessário a alocação de um
vetor comum e com o auxílio de uma função de repetição, como o for, criar um novo vetor
dentro do primeiro. Como se pode ver no código abaixo:
...
//matriz é
alocada como vetor tendo um tamanho m
matriz = (int*) malloc(m * sizeof(int*));
for(i = 0;i <
m;i++){
/*Nesta etapa
é alocado outro vetor dentro da posição i,fazendo desta maneira n colunas*/
matriz[i] =
(int*) malloc (n*sizeof (int*));
…
- A utilização de um dado dessa matriz seria por matriz[i][j].
- m e n são números inteiros que indicarão – quando multiplicados nesse caso pelo tamanho de um int – quantos bytes serão alocados.
Esse texto foi originalmente requisitado na disciplina Programação de Computadores do meu curso de Eng. de Computação :v
Comentários
Postar um comentário