(docx)Aula Programação Estruturada 25 - 11 - 2013 (Anotações Matriz Inca)
2 pág.

(docx)Aula Programação Estruturada 25 - 11 - 2013 (Anotações Matriz Inca)

Disciplina:Programação Estruturada159 materiais502 seguidores
Pré-visualização1 página
#include<stdlib.h>
#include<stdio.h>

void informaDimensao(int *linha, int *coluna){
   printf("Linhas: ");
   scanf("%d", linha);                //sem & pois aponta para o endereço (&lin)
   printf("Colunas: ");
   scanf("%d", coluna);                //scanf("valor", "endereço_variavel");
}

int ** alocaMatriz(int linha, int coluna){
   int **m;
   m = malloc(linha * (sizeof(int*)));
   int i;
   for(i=0; i<linha; i++){
       m[i] = malloc(linha * (sizeof(int)));
   }
   return (m);
}

void preencheMatriz (int **m, int linha, int coluna){
   int i,j;
   for(i=0; i<linha; i++){
       for(j=0; j<coluna; j++){
           printf("Informe o valor na posição[%d][%d]",i,j);
           scanf("%d", &m[i][j]);
       }
   }
}

void liberaMatriz(int **m, int linha){
   int i;
   for(i=0; i<linha; i++){
       free(m[i]);
   }
   free(m);
}

int main (){
   int lin,col;

   informaDimensão(&lin,&col);            //passado como endereço

   int **matriz;

   matriz = alocaMatriz(lin, col);
   preencheMatriz(matriz, lin, col);
   escreveInca(matriz, lin, col);
   liberaMatriz(matriz, lin);
   return (0);
}

/* (como funfa o malloc)

int a[10];
é a mesma coisa que:

int *a;
a = malloc(10 * sizeof(int)); // ponteiro = malloc (quantidade * (tamanho_do_tipo_da_variavel))
a[posição_0~9] pode ser acessado como um vetor normal

*/