Passing defined arrays into function, variables not declared in scope

PaulS:

void CheckBlocks(int Block_1[], int Block_2[], int Block_3[], int Block_4[]){

This isn't right, either. You need to tell the function how big the arrays are, or pass pointers, instead. If you pass pointers, you'll need some sentinel value in the array so the function knows when it reaches the end, or you'll need to pass an explicit size for each (or all) array(s).

No, that's correct. It's just syntactic sugar around passing pointers. And he's using the constant 16 for the length, although that should be Block_Size. With just moving the void setup() { line, it compiles fine.