1. Make array2 the same size as array1 (which can potentially waste a metric fuck tonne lot of memory). You will want to keep an index of where the last element was entered into array2 (so you know where to put the next one as well as give an idea of how many elements are in the array),

2. Count the number of entries in array1 that are greater than num1 and dynamically allocate array2 to be that size then put the values in array2 (which would require two passes of array1).

There may be more (read better) ways, but I can't think of any off of the top of my head.