Ir ao conteúdo

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


Ir à solução Resolvido por isrnick,

Posts recomendados

Postado

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

Postado

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.

  • Solução
Postado

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
Postado

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. 

 

  • Curtir 1
Postado
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.

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