Variavel nao declarada

1. Variavel nao declarada

Henrique Cesar
henriquecb

(usa Arch Linux)

Enviado em 22/08/2016 - 20:48h

Boa Noite, estou fazendo um trabalho e possuo uma função que retorna uma matriz do tipo mapa e eu preciso utilizar essa matriz, entao criei uma variável do tipo mapa para armazenar o valor retornado da função, porém, quando eu compilo o arquivo, da um erro falando que a variavel m nao foi declarada sendo que eu a declarei. Alguem sabe o que pode ser? ou se há algum outro meio de usar a matriz retornada pela função? Obrigado

void andar(jogador *J, int **mapa, int tamanho) {
int i, j, n=1;
J->visitado=(ponto*)calloc((3*tamanho),sizeof(ponto));
J->visitado[0]=J->posicao;
mapa **m;
m=preencheMatriz(J, tamanho, mapa);
.
.
.
}



  


2. Re: Variavel nao declarada

Paulo
paulo1205

(usa Ubuntu)

Enviado em 22/08/2016 - 21:11h

henriquecb escreveu:

void andar(jogador *J, int **mapa, int tamanho) { 


Aqui você disse que mapa é uma variável do tipo “ponteiro para ponteiro para inteiro”...

	int i, j, n=1;
J->visitado=(ponto*)calloc((3*tamanho),sizeof(ponto));
J->visitado[0]=J->posicao;
mapa **m;


... e aqui você dá a entender que quis declarar m como “ponteiro para ponteiro para dado do tipo mapa”. Entretanto, como mapa já foi declarado acima como variável, e não como tipo de dados, o que o compilador entendeu foi que você tentou usar a variável como parte de uma expressão de multiplicação. Usando parênteses para deixar mais claro o que o compilador entendeu, eis uma linha equivalente à linha acima.

mapa*(*m); 


Em Português, isso significa o seguinte: você calcula o produto de mapa, que é uma variável conhecida, pelo conteúdo do endereço apontada pela variável ponteiro m e, após o cálculo, despreza o resultado. Você de fato não declarou essa variável m nas linhas anteriores e a tentativa de declará-la, nesta linha, foi feita com um erro que fez com que ela parecesse uma expressão de cálculo.

	m=preencheMatriz(J, tamanho, mapa); 


Aqui, de novo aparece a variável m não-declarada. Contudo, se você estiver usando o GCC, ele geralmente só reporta a presença de cada nome de variável desconhecido uma vez por cada função. Como a linha acima provavelmente já trouxe essa mensagem, ela não aparece de novo aqui.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts