You are stumbling over two subtleties of the C++ language:
(1) When you allocate an array dynamically (by new) your store a pointer to the first element. But that pointer no longer contains the length of the array. If you ask for "sizeof arr" you will get the size of that pointer and not the size of the array. Had you defined your array as
int myArray [10];
then "sizeof myArray" would return the size of the array in bytes.
(2) You are confusing the number of elements and the length in bytes of an array. Your arraysize variable hold the number of elements. The size of the array in bytes would be x-times larger, x being the length of a single int variable.