#include<stdio.h>
#include <stdlib.h>
void  deal_queries(int *arr, int limit, int numQueries, int filled) {
    // Write your code here
    for(int i=0;i<filled;i++)
    {
        printf("%d ",*(arr+0));
    }
}
int * read_input(int N,int n){
    //declare dynamic array of size N
    // take input n integers and store them in the array and return pointer to this
    int i;
    int *ptr;
    int array[N];
    ptr=array;
    for(i=0;i<n;i++)
    {scanf("%d ",ptr);ptr++;}
    ptr=array;
    return (ptr);
}
int main()
{
    int N,Q,n; 
    scanf("%d %d %d",&N,&Q,&n);
    int* arr=read_input(N,n);
    printf("%d ",*(arr+0));
    deal_queries(arr,N,Q,n);
    return 0;
}
when I print arr elements in main function I get correct values but if I pass them into deal with queries function I get random values can anyone explain why is this happening?
 
     
     
     
    