Just as a conclusion to everything that has been said in this thread, if you want to pass an array as argument you have to declare it as pointer in the function definition.
How could you not? A C "array" IS a pointer to the start of it. There is nothing more to it. Stop thinking of C as a high level language. It is a CPU independent assembly language.