Reversing array in C with pointers
For starters this declaration
int arra[] = {};

is invalid in C and C++.
You should define the array also allocating dynamically memory for it as for the first array or in the worst case you could define a variable length array (provided that the compiler supports VLAs) like
int arra[num];

This for loop
for(int k = 1; k == num; k++){

will iterate only one time when num initially is set to 1.
Also within the body of the loop the variable j is created in each iteration of the loop (provided that the condition of the loop will be updated correctly) with the value 1
    int j = 1;
    arra[j] = *(arr + num -k);
    j++;

Thus this statement
    arra[j] = *(arr + num -k);

in each iteration of the loop is equivalent to
    arra[1] = *(arr + num -k);

that does not make sense.
To copy one array into another array using pointers the for loop can look for example the following way
for ( int *src = arr, *dsn = arra + n; src != arr + n; ++src )
{
    *--dsn = *src;
}


Trying to reverse the array. And then print it
I am trying to reverse the array by indenting from last to first element of array and copy it to another array. arra will be the reversed array :
Here's my code :
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num, *arr, i;
    scanf("%d", &num);
    arr = (int *)malloc(num * sizeof(int));
    for (i = 0; i < num; i++) {
        scanf("%d", arr + i);
    }
    
    int arra[] = {};
    /* Write the logic to reverse the array. */
    arra[0] = *(arr + num);
    for (int k = 1; k == num; k++) {
        int j = 1;
        arra[j] = *(arr + num -k);
        j++;
    }

    for (i = 0; i < num; i++)
        printf("%d ", *(arra + i));
    return 0;
}

