如何修复在c

时间:2019-06-30 22:33:32

标签: c segmentation-fault

我试图构建一个带有int **矩阵的滑动益智游戏,代码非常繁琐,但我发现问题出在这些功能上。每当我在“温度”部分按下一个键时,它就会停止并显示段错误消息。

  struct zeropos{
  int i,j;
};

struct zeropos* zero_pos(int **matriz){

  struct zeropos pos_zero;
  struct zeropos *pointer=&pos_zero;
  int i, j;

  for(i=0;i<3;i++){
    for(j=0;j<3;j++){
      if(matriz[i][j]==0){
        pos_zero.i=i;
        pos_zero.j=j;

          printf("%d\n %d\n", pos_zero.i, pos_zero.j);

      }
    }
  }

  return pointer;
}

void keyDown(int **matriz){
  struct zeropos *zp;
  int temp, i, j;
    int zpi=0, zpj=0;

  printf("%d\n %d\n", zpi, zpj);

  zp = zero_pos(matriz);

  zp->i = zpi;
  zp->j = zpj;

  setbuf(stdout, NULL);
  printf("%d\n %d\n", zpi, zpj);

  if(zp->i==0){
    return;
  }

  temp = matriz[zp->i + 1][zp->j];
  matriz[zp->i + 1][zp->j] = 0;
  matriz[zp->i][zp->j] = temp;

  for(i=0;i<3;i++){
    for(j=0;j<3;j++){
      printf("%d ", matriz[i][j]);
    }
    printf("\n");
  }
}

分段错误(核心已转储)

0 个答案:

没有答案