I made an static int arr[3] and set to 1, 2, 3.
I can print 1, 2, 3 in the same function.
But when I pass the array it only prints 1, 2.
Why? What happened? How do I fix this?
#include <stdio.h>
void printArray(int* arr){
size_t n = sizeof(arr)/sizeof(arr[0]);
  for(int i=0; i<n; i++){
    printf("%d\n",arr[i]);
  }
}
int* makearray()
{
        static int arr[3];
        arr[0] = 1;
        arr[1] = 2;
        arr[2] = 3;
        printf("The Array before passing onto stack\n");
        size_t n = sizeof(arr)/sizeof(arr[0]);
        for(int i=0; i<n; i++){ printf("%d\n",arr[i]);}
        printf("\nThe Array when attempting to pass to another function\n");
        printArray(arr);
        return arr;
}
int main(void) {
  int* m = makearray();
  return 0;
}
 
    