Ir para conteúdo
Fórum Script Brasil
  • 0

Erro: "Falha de segmentação (imagem do núcleo gravada)"


WayGlass

Pergunta

Olá,

Fiz um programa que move números em uma matriz - um trabalho em que devo refazer o jogo 2048 em C. Eu digito a direção então ele move, porém, quando eu digito as direções para cima ou para baixo ele dá o erro "Falha de segmentação (imagem do núcleo gravada)" e finaliza o programa. Não achei o erro da função, se puder me ajudar.

A função que move os numeros para cima:

#include<stdio.h>

 

//MATRIZ[4][4];

 

void dirCima(char dir,int *pMatriz[][4])

{ //46 quer dizer que o bloco está vazio{

int i,j,cont;

do{

for(j=0;j<=3;j++)

{

for(i=0,cont=1;i<4;i++)//este cont será usado para executar N vezes o próximo 'for'.

{

if(*pMatriz[i][j]!=46)

cont++;

}

do{

for(i=0;i<4;i++)

{

if(*pMatriz[i][j]!=46)

{

if(*pMatriz[i+1][j]==*pMatriz[i][j])

{

*pMatriz[i+1][j]+=*pMatriz[i][j];//se o número for igual ao que está indo para sua direção eles se somam.

*pMatriz[i][j]=46;

imprimeMatriz(pMatriz);

}

if(*pMatriz[i-1][j]==46&&i-1>=0)

{//se o bloco estiver vazio ele receberá o número que vai na sua   direção

*pMatriz[i-1][j]=*pMatriz[i][j];

*pMatriz[i][j]=46;

imprimeMatriz(pMatriz);

}

}

}

cont--;

}while(cont>=0);

}

}while(i<=3&&i>=0);

}

A que move para baixo:

#include<stdio.h>
 
//MATRIZ[4][4];
 
void dirBaixo(char dir,int *pMatriz[][4])
{  //46 quer dizer que o bloco está vazio
int i,j,cont;
do{
for(j=0;j<=3;j++)
{
for(i=3,cont=1;i>=0;i--)//este cont será usado para executar N vezes o próximo 'for'.
{
if(*pMatriz[i][j]!=46)
cont++;
}
do{
for(i=3;i>=0;i--)
{
if(*pMatriz[i][j]!=46)
{
if(*pMatriz[i-1][j]==*pMatriz[i][j])
{
*pMatriz[i-1][j]+=*pMatriz[i][j];//se o número for igual ao  que está indo para sua direção eles se somam.
*pMatriz[i][j]=46;
imprimeMatriz(pMatriz); 
}
if(*pMatriz[i+1][j]==46&&j+1<=3)
{//se o bloco estiver vazio ele receberá o número que vai na sua     direção
*pMatriz[i+1][j]=*pMatriz[i][j];
*pMatriz[i][j]=46;
imprimeMatriz(pMatriz);
}
}
}
cont--;
}while(cont>=0);
}
}while(i<=3&&i>=0);
}
Editado por WayGlass
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...