OpenGL function definitions

Why does OpenGL take the length/size of one of the arguments with the argument ?
They can calculate the size/length in the function itself right ?

Wrong.

In C, you can’t determine the size of an array from a pointer. If you weren’t aware of this, you should probably spend more time learning C before trying to use it.