Finding the size of int [] array
c++
Solution
Remember, in C when you pass an array as an argument to a function, you're passing a pointer to the array. If you want to pass the size of the array, you should pass it as a separated argument.
The size of a pointer and an `int` is 4 or 8 or something else - depending on `ABI`. In your case, it's `4`, so you're getting `sizeof(int *)/sizeof int` which is 1.
Here is a useful trick
You can store the length of the array in the first element of it:
int myArray[]= {-1, 1, 2, 3, 4, 5};
myArray[0] = sizeof(myArray) / sizeof(myArray[0]) - 1;
//The -1 because.. the first element is only to indicate the size
Now, `myArray[0]` will contain the size of the array.
Problem
In the following function, how can we find the length of the array ``` int fnLenghthOfArray(int arry[]){ return sizeof(arry)/sizeof(int); // This always returns 1 } ``` Here this function always returns 1. Where as, `sizeof(arry)/sizeof(int)` gives the actual length of the array, in the function where it is declared. If we use vector or template like ``` template<typename T,int N> int fnLenghthOfArray(T (&arry)[N]){ } ``` we can get the size. But here I am not allowed to change the function prototype. Please help me to find this.