Intenta crear un cast.(int)mat[b1] > 20
¿Tiene sentido comparar un puntero con 20? A menos que sea 0 siempre va a ser mayor a 20, debe ser un error de logica y hacer un casting para forzar la comparacion no lo solucionaria.
Normalmente cuando posteo una respuesta, lleva consigo unenunciado claro y preciso, basado en una prueba que realizocon anterioridad, en muchos foros he visto que no pruebansus respuestas, y a veces esta equivocada.
No es un puntero, es "&".
Este esa el código que posteó "x1x1x1" y funciona perfectamente:
Este es el código que NO se posteo y fué la única forma que pude reproducir el error.
Este es el código que recomiendo, aunque estaba previamente claro,puesto que el error no se presentaba en el código inicial.
Perdón por mi insistencia en el mismo tema peroaún este código funciona correctamente, si esefuera el camino que hubiera seleccionado paracrear las variables con punteros.