Can someone show me the correct way to have a function return a 2D array, then have that same 2D array get pass through another function by its parameter?
When this function returns, C++ automatically cleans up any local variables. As a result 2DArray now points to some unknown region in memory, so when reading/writing to the array, you will get undefined behaviour (i.e. program crashing). Also you forgot single quotation marks(' ') for the characters.
You could either:
Use a vector and return that.
If you have to use arrays, pass a 2D array as a parameter, and modify the elements that way.