Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. void CriaMatriz(int ***matriz, int linhas, int colunas){
  2.  
  3. int i,j;
  4.  
  5. /* Alocação das linhas da matriz. */
  6. matriz = (int ***) malloc(linhas * sizeof(int **));
  7.  
  8. /* Alocação das colunas da matriz. */
  9. for (i = 0; i < linhas; i++) {
  10.  
  11. matriz[i] = (int **) malloc(colunas * sizeof(int*));
  12.  
  13. /* Preenchimento da matriz. */
  14. for (j = 0; j < colunas; j++) {
  15. scanf("%d", matriz[i][j]);
  16. }
  17. }
  18. }
  19.  
  20. int main() {
  21.  
  22. int **matriz1, linhas, colunas;
  23.  
  24. CriaMatriz(&matriz1, linhas, colunas);
  25.  
  26. }
  27.  
  28. #include <stdio.h>
  29. #include <stdlib.h>
  30.  
  31. void CriaMatriz(int **matriz, int linhas, int colunas);
  32.  
  33. int main(int argc, char* argv){
  34. int **matriz1, i, linhas = 0, colunas = 0;
  35.  
  36. CriaMatriz(matriz1, linhas, colunas);
  37.  
  38. // Após uso deve-se liberar a memória
  39. for (i = 0; i < linhas; i++){
  40. // Liberando as linhas
  41. free(matriz1[i]);
  42. }
  43.  
  44. // Liberando o apontador principal
  45. free(matriz1);
  46. }
  47.  
  48. void CriaMatriz(int **matriz, int linhas, int colunas){
  49.  
  50. int i,j;
  51.  
  52. // Agora temos a alocação correta, teremos X ponteiros para ponteiros
  53. matriz = (int**) malloc(linhas * sizeof(int*));
  54.  
  55. // Cada ponteiro terá X colunas de inteiros
  56. for (i = 0; i < linhas; i++) {
  57. matriz[i] = (int*) malloc(colunas * sizeof(int));
  58. }
  59.  
  60. /* Preenchimento da matriz. */
  61. for (i = 0; i < linhas; i++) {
  62. for (j = 0; j < colunas; j++) {
  63. // Nós colocamos o valor no endereço apontado
  64. scanf("%d", &matriz[i][j]);
  65. }
  66. }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement