我有这段代码
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 ++工作)
答案 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;
}
}