Ademas de lo q dijo sam90, no leiste ninguna de las observaciones q te hice:
tiene q ser
No podes hacer esto:
Código C:
Ver original(int *)claveaux = tonumber(claveaux); //Convierte los caracteres de clave en valores numéricos
(int *)texto = tonumber(texto);
claveaux y texto son arreglos de caracteres, y tonumber() devuelve un int *. Pero el error principal es que vos estas queriendo hacer una asignacion entre arreglos lo cual no se puede. En lugar de claveaux y texto deben ir los punteros "p" y "q"
Saludos