I'm trying to pass the pointer of a dynamic array into a template function, but it keeps telling me there is no matching function to call because the parameters I'm passing in are wrong. I can't figure out how to make the function accept the pointer.
Your functions take arrays of pointers to (arrays of) T, while you are simply passing them pointers to (arrays of) T. In other words, the type of list, for example, is int*. You try to pass this to a function expecting a T*[]; there is no way to substitute a type into T to make them match. Perhaps you meant simply T list[], etc. in your functions? Additional, checkNum() doesn't need to be a template function as it doesn't use the template parameter at all.
In regular functions I've always put the pointer in the prototype and function parameters and it worked fine. I don't understand why templates won't accept the pointer.