Guest User

Untitled

a guest
Apr 25th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. //funcao que aloca espaco na memoria para a matriz e retorna o ponteiro da matriz
  5. int **constroi_matriz(int m, int n) {
  6. //alocando matriz com duas linhas
  7. int **matriz = malloc(n * sizeof(int));
  8.  
  9. //alocando matriz com dua colunas para cada linha
  10. for(int i =0; i < m; i++) {
  11. matriz[i] = malloc(n * sizeof(int));
  12. }
  13.  
  14. return matriz;
  15. }
  16.  
  17. //funcao que inicializa a matriz
  18. void inicializa_matriz(int **matriz, int m, int n) {
  19. for (int i = 0; i < m; i++)
  20. for (int j = 0; j < n; j++)
  21. matriz[i][j] = i + j;
  22. }
  23.  
  24. //funcao que imprime os valores da matriz
  25. void imprime_matriz(int **matriz, int m, int n) {
  26. for (int i = 0; i < m; i++) {
  27. for (int j = 0; j < n; j++) {
  28. printf("%i\t", matriz[i][j]);
  29. }
  30. printf("\n");
  31. }
  32. }
  33.  
  34. //funcao que libera o local alocado para a matriz
  35. void libera_matriz(int **matriz, int n) {
  36. for(int i = 0; i < n; i++) {
  37. free(matriz[i]);
  38. }
  39.  
  40. free(matriz);
  41. }
  42.  
  43. int main(int argc, char const *argv[]) {
  44. //declarando variavel
  45. int m,n;
  46.  
  47. //variavel recebe valor passado no cmd
  48. m = atoi(argv[1]);
  49. n = atoi(argv[2]);
  50.  
  51. //alocando matriz com duas linhas
  52. int **matriz = constroi_matriz(m, n);
  53.  
  54. //chamando as funcoes:
  55. //inicializacao da matriz
  56. inicializa_matriz(matriz, m, n);
  57.  
  58. //impressao dos valores da matriz
  59. imprime_matriz(matriz, m, n);
  60.  
  61. //liberacao do espaco alocado para a matriz
  62. libera_matriz(matriz, n);
  63.  
  64. return 0;
  65. }
Add Comment
Please, Sign In to add comment