the size of a pointer is 4bytes (I'm assuming you are using a Due or something like if you got sizeof(int)=4).
sizeof() is not so much a function as it is a way of getting a "compile time" constant value of a size of an object in bytes.
You cannot use sizeof() in a function to get the size of an array passed to that function because at compile time the size isn't known - think about it, if you pass an array with 10 elements, then pass another array of 40 elements, how can the value of sizeof() be known at the time of compiling, and how if it is compiled in to the code can it change value during execution.
If you were to do this:
void someFunc(int array[10]){
}
Then sizeof(array) = 10 * sizeof(int). This is because you are specifying that the function can only take arrays of 10 integers - not 9, not 11, not 5232342.