Ir ao conteúdo

Posts recomendados

Postado

Estou iniciando os estudos com  funções que modificam matrizes. Construí o seguinte código, mas ao compilar, ele trava, e não estou conseguindo identificar o problema, e nem se teria outra forma mais fácil de faze-lo

#include <stdio.h>

int obter_valor (int valor)
{
    scanf ("%d", &valor);
    return valor;
}


void criar_matriz (int linha, int coluna, int **pont){
    for (int i = 0; i < linha; i++){
        for (int j = 0; j < coluna; j++){
            scanf("%d", &pont[i][j]);
        }
    }
}


void escrever_matriz (int linha, int coluna, int **p)
{
    for (int i = 0; i < linha; i++)
    {
        for (int j = 0; j < coluna; j++)
        {
            printf ("[%d] [%d] = [%d]\n",i,j, p[i][j]);
        }
    }
}

int main ()
{
    int linha = obter_valor (linha);
    int coluna = obter_valor (coluna);
    int matriz [linha] [coluna];
    int **ponteiro = matriz;
    criar_matriz (linha, coluna, ponteiro);
    escrever_matriz (linha, coluna, ponteiro);

    return 0;
}

 

Postado

O problema é que está usando um ponteiro para ponteiro (**ponteiro) para armazenar uma referencia que aponta para um vetor/array inteiro, e não são compatíveis.

 

Expliquei a diferença nesse outro tópico veja se te ajuda:

 

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!