por Fabio_Jerena » 29 Mar 2011 15:07
Aproveitando o assunto, na verdade minha dúvida é um mesclado de ponteiro e uso de funções...
Estou fazendo o seguinte código:
signed int TABSPRKADV[8][8] = {15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15};
E vamos fazer um programa de teste:
signed int Funcao_Teste(int x, int y, *Tabela)
{
return (Tabela[x][y]);
}
Leve em consideração que eu estou usando o CCS:
Bom, isso não funciona, porque???
Primeiro, não aceita o "Tabela", deve ser escrito da seguinte forma:
signed int Funcao_Teste(int x, int y, *Tabela[8][8])
{
return (Tabela[x][y]);
}
Daí o primeiro problema que eu já perco a liberdade de colocar a tabela com a quantidade de elementos que eu quiser...
Segundo problema, os valores devolvidos pela função não são os da tabela de origem:
saida_da_tabela = Funcao_Teste(3,3, TABSPRKADV);
Ao invés de ler o valor 15 vem 12 e outros que não os valores da tabela, isso com certeza não é um bom sinal...
Como eu faço para trabalhar com a tabela apontada dentro da minha função? Para um vetor (unica dimensão funcionou perfeitamente), agora para um vetor bidimensional não funciona por nada neste mundo, um verdadeiro parto!
Quem souber e puder ajudar agradeço, pois quebrei a cabeça de diversas formas e ainda não consegui resolver!
Obrigado!
Fábio Jerena