我怎样才能返回矩阵?

时间:2014-10-30 16:45:48

标签: arrays pointers matrix

我有这段代码

int draw_matrix(int a){

  int matrix[a][a];
  int i,j;

  for(i=0;i<a;i++){
      for(j=0;j<a;j++){
          matrix[i][j]=0;
        }
      }

  int ship;
  for (ship=0;ship<5;ship++){
    if (a==8){
      if (ship==0){
        int x1, x2, x3, x4, y1, y2, y3, y4;
        printf("... \n");
        scanf("%i %i %i %i", &x1, &x2, &x3, &x4);
        fflush(stdin);
        printf("... \n");
        scanf("%i %i %i %i",&y1,&y2,&y3,&y4);
        fflush(stdin);
        matrix[x1-1][y1-1]=1;
        matrix[x2-1][y2-1]=1;
        matrix[x3-1][y3-1]=1;
        matrix[x4-1][y4-1]=1;
        }
      if (ship==1){...
      .
      .
      .
  }
return 0;
}

此代码适用于游戏,我需要调用此函数在其他函数中使用矩阵,但我不知道如何返回此矩阵...

谁能告诉我怎么做? (我在C而不是C ++工作)

1 个答案:

答案 0 :(得分:0)

您的功能应为int **类型,您应该在底部而不是return matrix;

return 0;

另外,你应该像这样初始化矩阵:

int **matrix;
matrix = new int*[a];
int i,j;

for(i=0;i<a;i++){
  matrix[i] = new int[a];
  for(j=0;j<a;j++){
      matrix[i][j]=0;
    }
  }