...you pass in a pointer to the first character. Arrays in C are simply contiguous spans of memory.
Thid then has the problem that thr length is unknown, leading to well known problems.
Well if you wrote the array, or your program did, then you do know the length. Not a problem. Would it be nice if an array internally stored that? Sure. Does it? No. Is that a real problem? No, not really - its been solved and worked around for decades
This is incorrect; a quick search with your first sentence will answer that
I found the opposite, and a quote from the standard: " A declaration of a parameter as ‘‘array of type’’ shall be adjusted to ‘‘qualified pointer to type’’, where the type qualifiers (if any) are those specified within the [ and ] of the array type derivation."
You pass by reference, not by copy. It is still passing an array to a function though