Passando uma matriz como referência e retornando-a
#include <stdio.h>
#include <stdlib.h>
#include "labirinto.h"
int** cria_matriz(int tamanho){
int **matriz = (int **)malloc(tamanho*sizeof(int *));
for(int i = 0; i<tamanho; i++){
matriz[i] = (int *)malloc(tamanho*sizeof(int));
for(int j = 0; j<tamanho; j++){
matriz[i][j] = 9;
printf("%d ", matriz[i][j]);
}
printf("\n");
}
return matriz;
}
int linha = 0, coluna=0;void cria_labirinto(int matriz[][TAMANHO], int tamanho){
int x = rand()%3;
if(linha == 0){
coluna = rand()%tamanho;
matriz[linha][coluna] = 0;
}
else if(x==1 && coluna!=0) matriz[linha][coluna-1] = 0;
else if(x==2 && coluna!=tamanho) matriz[linha][coluna+1] = 0;
else if(x==3 && linha!= tamanho) matriz[linha+1][coluna] = 0;
if(linha == tamanho){
matriz[linha][coluna] = 2;
return;
}
else {
linha++; coluna++;
// cria_labirinto(matriz[][tamanho], tamanho);
}
for(int i = 0; i<tamanho; i++){
for(int j = 0; j<tamanho; j++){
printf("%d ", matriz[i][j]);
}
printf("\n");
}
}
Preciso retornar uma matriz para usa-la novamente em outra função que irá 'bagunça-la' para formar um labirinto.
A dúvida é: como retorno a função criada (preenchida com 9) e como a passo como parâmetro na função que irá bagunça-la.Discussão (0)
Carregando comentários...