Видимо компилируете 32битный бинарник, был бы 64битный, показало бы 2 элемента. Потому что sizeof(my_array) в вашем случае вернет не размер массива, а размер указателя на массив, а он всегда равен sizeof(int) в вашем случае. Размер надо прокидывать снаружи. Компилятор не таскает размер массива вместе с массивом.