Ir ao conteúdo
  • Cadastre-se
Tiago B. Cunico

C++ RESOLVIDO Como utilizar uma matriz como parâmetro para uma função

Recommended Posts

Bom dia, estou fazendo um trabalho para a faculdade onde eu preciso passar uma matriz para uma função, no trabalho o professor especifica que eu tenho que trabalhar como um projeto, e também tenho que separa o arquivo principal (main) do de funções. Vou deixar meu projeto inteiro para download. Desde já agradeço qualquer um que se disponha a ajudar.

trabalho.rar

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo eu tenho dois arquivos um com o meu programa principal (main) e em outro arquivo eu tenho as funções que eu adiciono no main como se fosse uma biblioteca, então por exemplo no main eu tenho isso 

 

#include <stdio.h>
#include "funcoes.h"

int main()
    imprimir(tab[][]);
    printf("\n\n");  
}

 

e o imprimir teria isso

 

#include <stdio.h>
#define TAMBU 9

void imprimir(char tab[TAMBU][TAMBU]){
    for (int i=0;i<TAMBU;i++){
        printf("\n");
        for (int j=0;j<TAMBU;j++){
            printf(" %c",tab[j]);
        }
    }
}

eu queria mandar toda a matriz para a função.

 

@Kelvin Isael Seibt  acho que agora eu me fiz entender, desculpa se não fui claro no outro post.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim no seu main:

#include <stdio.h>
#include "funcoes.h"

int main()
    char tab[TAMBU][TAMBU];
    imprimir(tab);
    printf("\n\n");
    return 0;
}
  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
45 minutos atrás, isrnick disse:

Faz assim no seu main:


#include <stdio.h>
#include "funcoes.h"

int main()
    char tab[TAMBU][TAMBU];
    imprimir(tab);
    printf("\n\n");
    return 0;
}

Correto.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não é isso que seu professor vai querer.

 

Fique ligado. C só trabalha com passagem de parâmetros por valor. Um vetor seria um monte de valores empilhados. Tem que passar por referência. Mas como ? Passa o valor de um apontador. 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, Boko Moko disse:

Acho que não é isso que seu professor vai querer.

 

Fique ligado. C só trabalha com passagem de parâmetros por valor. Um vetor seria um monte de valores empilhados. Tem que passar por referência. Mas como ? Passa o valor de um apontador. 

 

Dessa maneira já está passando por referência, matrizes e vetores não são passados como valores quando usa o nome da matriz como parâmetro, mas sim como referência (tab == &tab[0][0]). Pode facilmente verificar isso pois se você alterar a matriz dentro da função estará alterando a matriz original do main.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×