There are two ways to do this:
void useArray(int array[], size_t len) { ... } ... useArray(myArray, 24); useArray(&myArray[24], 15); useArray(&myArray[39], 26);
OR
void useArray(int *start, int *end) { ... } ... useArray(myArray, myArray + 24); useArray(myArray + 24, myArray + 39); useArray(myArray + 39, myArray + 65);
The first is rather the C path, the second is more C ++. Please note that with the second method, the range [start, end) - end not included in the range, as you can see a lot in C ++.
EDIT:. You edited your post to mention that you are using glTexCoordPointer() . In this case, pass the beginning to the array on glTexCoordPointer() , which will be either myArray , myArray + 24 , or myArray + 39 .
The size of the array must still be known, and it is passed to functions such as glDrawArrays or glDrawElements() , after which reading from the array will begin. If you used glDrawArrays() , the length of the array is passed as the second argument. So your code might look something like this:
glTexCoordPointer(..., ..., ..., my_array); ... glDrawArrays(..., 0, 24); glTexCoordPointer(..., ..., ..., my_array + 24); ... glDrawArrays(..., 0, 15); glTexCoordPointer(..., ..., ..., my_array + 39); ... glDrawArrays(..., 0, 26);