vorrei capire il caricamento di una matrice di tipo unsigned char
io mi sono comportato nel seguente modo....
#include <stdio.h>
#define righe 16
#define colonne 16
void carica_matrice (unsigned char (*)[colonne], int, int);
void main()
{
unsigned char MLG [righe][colonne];
int r, c;
printf ("Quante righe: ");
scanf ("%d", %r);
printf ("Quante colonne: ");
scanf ("%d", %c);
carica_matrice (MLG, r, c);
}
void carica_matrice (unsigned char (*mat)[colonne], int R, int C)
{
int i, j;
for (i=0; i<R; i++)
{
for (j=0; j<C; j++)
{
do
{
printf ("\nInserisci valore compreso nell'intervallo [0, 255], in posizione [%d][%d]: ", i, j);
scanf ("%c", &mat[i][j]);
}while (mat[i][j] >= 255 || mat[i][j] <= 0);
}
}
}
poi quando mando in esecuzione il programma, nel caso in cui dovessi inserire un valore maggiore di 255, il controllo del while non viene rispettato e quindi va avanti con l'inserimento dei valori.....