I would like to point out a few things that might help you.
First, if you want to pass an array as a function parameter, don't specify the size in brackets because there is no need to. In fact, think it is wrong.
Second, when you want to typecast something to int as I guess you are trying at your third line of code, the expression is :
(int)charArray[] ;
and not
int charArray(*) [SIZE]
Third and most important, you cant typecast something that is non-arithmetic (char) to something that is (int). But what you can do is use the atoi function that converts an argument to int.
int atoi(const char *str);
Also, next time you want to pass an array to a function, you should prefer to reference it and pass the address of the array as a parameter and not the array with the content itself, because there is no way to return the whole array converted from the transpose function, even if you manage to process it the way you want.
I hope I helped even a little, but if your problem is not resolved, try posting the statement of your problem in order for us to be more able to help you.
unsigned char [][]array to a function accepting anint[][]array. Decide which type you wish to use then use that type consistently.(int)my_charapplies to that one single variable, which in this case gets converted. If you were to do the same for a 2D array, you would have to loop through the 2D char array and cast each individual item to a 2D int. That works but is very slow. Why must you useunsigned charin the first place?transposeto useunsigned char?