bueno... aqui mi consejo: NO TENGO NI IDEA!
la verdad que yo he programado mucho y muy profundo con visual basic, pero de C tengo poca idea... asi que no se que significa
char claves [10] [8] = {"0AS45F82"};
por si no lo sabes, es bueno aclarar que para asignar un char a una variable se hace mediante comillas simples:
Caracter = 'a';
no se si esto producira un error en tu codigo, pero por las dudas lo digo
lo que se es que un char es una variable de 8bits, es decir 256 posibilidades, que representan segun una tabla ascii una letra, un numero, un simbolo o un caracter especial... tu no necesitas los 256 caracteres de una tabla ascii, sino solo 16, que casualemente son del 0 a la F en hexadecimal. estos se pueden representar con solo 4 bits, y los puedes hacer coincidir perfectamente con tu teclado matricial: 0 = 0x00 ... 9 = 0x09 ; A = 0x0a ... F = 0x0f
de esta manera puedes almacenar en un byte 2 digitos de la clave, los 4 bits mas significativos seran uno y los 4 bit menos significativos seran otro. no creo que se complique demasiado el codigo por hacer esto, y ademas te evitas andar con caracteres que en realidad no son mas que un numero entre 0 y 255.
me gustaria ser de mas ayuda, pero habitualemente soy yo el que pregunta en el foro... no el que responde
aun asi, en cualquier cosa que te pueda ayudar avisame
salu2