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.
Abaixo você consegue ver um programa que fiz que aloca dinamicamente uma matriz:


Esse texto foi originalmente requisitado na disciplina Programação de Computadores do meu curso de Eng. de Computação :v

Comentários

Postagens mais visitadas deste blog

Parli Italiano? III- Alfabeto Italiano

Vogal ou Consoante com Switch-Case em C

Conclusão sobre Xenofobia