'Pass array pointer to other program and extract that pointer in c

I am trying to pass an array of integer to other program and accept that from *argv. Then sort the array and print that from initial program. But I can not accept the pointer of the array and work with it. (can't even compile sort.c)

#include<stdio.h>

 int main(int argc, char *argv[])    
{    
   
    int arr =  argv[1];     
    int temp = 0;    
           
    int length = sizeof(arr);    
            
        
    //Sort the array in descending order    
    for (int i = 0; i < length; i++) {     
        for (int j = i+1; j < length; j++) {     
           if(arr[i] < arr[j]) {    
               temp = arr[i];    
               arr[i] = arr[j];    
               arr[j] = temp;    
           }     
        }     
    }    
}



#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

int main(int argc, char *argv[])
{
     int length = args-1;
     int arr[length];
     for(int i=0;i<length,i++)
     {
      arr[i]=argv[i+1];
     }
     int *p=arr
    pid_t pid=fork();
    if (pid==0) { 
        
        execv("sort",p);

    }
    else {
        
    }
    return 0;
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source