Olá sou iniciante em C estou tendo problemas ao passa matrizes como ponteiro, No meu code Quando o programa ler a variável temp logo em seguida aparece um erro no meu terminal "Falha de segmentação (imagem do núcleo gravada)", Eu pesquisei muito sobre o assunto e mesmo assim não conseguir enxergar o Erro. Alguém poder me livrar dessa dor de cabeça? Desde já Obrigado :)
#include <stdlib.h>
#include <stdio.h>
// Jogo da Velha
void saida(int PL[][3], int TabNum[][3]);
void entrada(int **PL, int Player, int TabNum[][3]);
int main(){
printf("________________________________________________________________\n");
int PLog[3][3] = {}; // Esta tabelá só poder armazenar 0, 1 , 3 em seus elementos
int NumDisplay[3][3] = { 1, 2, 3,
4, 5, 6,
7, 8, 9}; // Esta Tabela e usada para indicar as posição da Tabela PLog[3][3]
int Player = 2; // 1 == X || 2 == O, Esta varivel e usada para indicar qual e o jogador da bolinha ou do X
entrada(PLog, Player, NumDisplay); /* Esta função inserir o valor da varivel "Player" na tabela "PLog[3][3]" na posição de
acordo com os valores dos elementos da tabela "NumDisplay[3][3]", Que e escolhida inserindo valor da
variavel "temp" depois e verificada por uma condicional "if(temp == TabNum[x][z])" dentro de uma estrutura For */
saida(PLog, NumDisplay); // imprimir elementos do jogo da velha
return 0;
}
// Imprimir Jogo da Velha
void saida(int PL[][3], int TabNum[][3]){
for(int x = 0; x < 3; x++){
for(int z = 0; z < 3; z++){
switch(PL[x][z]){
case 1:
printf(" X ");
break;
case 2:
printf(" X ");
break;
default:
printf(" %i ",TabNum[x][z]);
}
}
printf("\n");
}
}
// Inserir a pocição do X que e (Player==1) (Player==2)
void entrada(int **PL, int Player, int TabNum[][3]){
int temp = 0;
scanf("%d", &temp);
for(int x = 0; x < 3; x++){
for(int z = 0; z < 3; z++){
if(temp == TabNum[x][z]){
PL[x][z] = Player;
}
}
}
}