Luciano - reptile Postado Julho 17, 2008 Denunciar Share Postado Julho 17, 2008 Estou com um problema, gostaria de saber como fazer a passagem de uma matriz por referência.void pede_valores(int *pmatriz[][3]) { int i,j; for (i=0;i<=2;i++) { for (j=0;j<=2;j++) { *pmatriz[i][j]=1; } } } int main() { int matriz[3][3]; pede_valores(&matriz); printf("Resultado: %i",matriz[0][0]); system("pause"); return 0; }Quando compilo esse código no Dev-C/C++ no Windows XP ele diz que encontrou um problema e precisa ser fechado.Gostaria de saber qual o jeito certo de passar uma matriz por referencia para uma função.Agradeço desde já .... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 web diackne Postado Julho 17, 2008 Denunciar Share Postado Julho 17, 2008 (editado) #include <stdio.h>void pede_valores(int pmatriz[3][3]) {int i,j;for (i=0;i<=2;i++) {for (j=0;j<=2;j++) {pmatriz[j]=1;}}}int main() {int matriz[3][3];pede_valores(matriz);printf("Resultado: %i",matriz[0][0]);system("pause");return 0;}Ao enviar o array ele trabalha sobre ele ou seja ao enviar para pede_valores() ele esta já a enviar o apontador para o array de inteiros.//---------#include <stdio.h>void pede_valores(int pmatriz[3][3]) {int i,j;for (i=0;i<=2;i++) {for (j=0;j<=2;j++) {pmatriz[j]=1+j*i*j*j;}}}int main() {int i,j,matriz[3][3];pede_valores(matriz);for (i=0;i<=2;i++) {for (j=0;j<=2;j++) {printf("Resultado: %d",matriz[j]);}}system("pause");return 0;} Editado Julho 17, 2008 por web diackne Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Kassi Postado Julho 17, 2008 Denunciar Share Postado Julho 17, 2008 Quando você passa uma matriz estática como parametro para uma função você faz da seguinte maneira:>>Informando a quantidade linhas e colunas:void teste(int matriz[3][3])>>informando apenas a quantidade de colunas da matriz:void teste(int matriz[][3])Esses são os dois jeitos para se passar um matriz estática como parametro, sempre severá informar a quantidade de colunas dela, pois o programa precisa saber o tamanho do vetor (linha) que a matriz terá.Para matrizes dinâmicas você passa como parametro assim:void teste(int **matriz)Espero ter ajudado =) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Luciano - reptile Postado Julho 17, 2008 Autor Denunciar Share Postado Julho 17, 2008 Pow vlw mesmo, agradeço . ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Luciano - reptile
Estou com um problema, gostaria de saber como fazer a passagem de uma matriz por referência.
Quando compilo esse código no Dev-C/C++ no Windows XP ele diz que encontrou um problema e precisa ser fechado.
Gostaria de saber qual o jeito certo de passar uma matriz por referencia para uma função.
Agradeço desde já ....
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.