Error muy tonto en c++[solucionado];

Joder tengo un error y no se porque es y la verdad debe de ser una tontería. Estoy haciendo una clase Sopa, en ella tengo este método:
void  Set(const unsigned int fil,const unsigned int col,unsigned char c);

La implementación de este método la tengo tal que así:
void  Sopa::Set(const unsigned int fil,const unsigned int col,unsigned char c){
   if((fil>=0 && fil<filas) && (col>=0 && col<columnas)){
      c[fil][col]=c;
   }
}

La representación interna de la clase es:
unsigned char **c;
   unsigned int filas,columnas;

Y el error que me da es:
src/sopa.cpp: In member function ‘void Sopa::Set(unsigned int, unsigned int, unsigned char)’:
src/sopa.cpp:68: error: tipos inválidos ‘unsigned char[const unsigned int]’ para índice de matriz
make: *** [obj/sopa.o] Error 1


No entiendo el error, me dice que tipos inválidos para el índice de la matriz, pero si le paso 2 enteros constantes sin signo...

Un salu2 y gracias
Lo mismo se esta liando por intentar declarar un unsigned char
Declara un char sin mas...

Otra cosa con la que se puede liar es con el c[fil][col]=c
lo cambiaría por un "this->c[fil][col]=c;"
He cambiado la representación interna por un char a secas, y me de el mismo problema, así que de eso no podrá ser.
Con respecto al objeto this, gracias por decirlo, pero lo entiendo mejor sin ponerlo, ya que me sale el código mas engorroso.

PD: mira que soy tonto... el nombre del unsigned char que asigno coincide con la representación interna de mi Sopa, así al poner c, el compilador se referia al unsigned char que tenía en el prototipo de la función y yo quería que se refiriera a unsigned char**. Bueno ya esta solucionado.
2 respuestas