Ir ao conteúdo
  • Cadastre-se

Como exibir uma matriz dinâmica na tela(como dar printf)?


Douglasdmll

Posts recomendados

Bom Dia! Estou tendo problemas para exibir uma matriz alocada, sempre na hora de exibir, o programa para e fecha, alguém sabe onde pode estar o erro?

 

#include <stdio.h>
#include <stdlib.h>

int main(){
int **cria_tabuleiro(int linha, int coluna, int **p);
int linha = 5, coluna = 5, **mat, i, j;
cria_tabuleiro(linha, coluna, mat);

printf("Exibir Matriz:\n");
for(i=0; i<linha;i++){
           printf("\n");
           for(j=0; j<coluna;j++){
               printf("%d  ", mat[j]);
           }
    }
}

int **cria_tabuleiro(int linha, int coluna, int **p){
    int   i, j, x, y;
    p = (int**) calloc (linha, (sizeof(sizeof(int*))));
    if (p == NULL){
        printf ("Erro de Memoria\n");
        return NULL;
    }
    for(i = 0; i<linha; i++){
        p = (int*) calloc (coluna, sizeof(int));
            if (p == NULL) {
            printf ("Erro de Memoria\n");
            return NULL;
              }
       }
       
}


 

Link para o comentário
Compartilhar em outros sites

//
//Bom Dia! Estou tendo problemas para exibir uma matriz alocada, sempre na hora de exibir, o programa para e fecha, alguém sabe onde pode estar o erro?
//
#include <stdio.h>
#include <stdlib.h>
int main(){
int **cria_tabuleiro(int linha, int coluna, int ***p);
int linha = 5, coluna = 5, **mat, i, j;
cria_tabuleiro(linha, coluna, &mat); //! Para que mat seja visível na função necessário seu ponteiro
printf("Exibir Matriz:\n");          //! Declarado no argumento e parâmetro.
for(i=0; i<linha;i++){
           printf("\n");
           for(j=0; j<coluna;j++){
               printf("%d  ", mat[i][j]);
           }
    }
}
int **cria_tabuleiro(int linha, int coluna, int ***p){
    int   i, j, x, y;
    (*p) = (int**) calloc (linha, sizeof(int*));
    if ((*p) == NULL){
        printf ("Erro de Memoria\n");
        return NULL;
    }
    for(i = 0; i<linha; i++){
        (*p)[i] = (int*) calloc (coluna, sizeof(int)); //! Aqui fiz a correção,
        //! [i] acessa a colunas da matriz e adiciona as linhas com função calloc.
            if (p == NULL) {
            printf ("Erro de Memoria\n");
            return NULL;
              }
       }
}

@Douglasdmll Bom dia!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...