I want to get an array length, I try to use by function, But in the function, I get array length is worry, the operation result is 2, Who can help me do this.
#include <stdio.h>
#define GET_ARRAY_LEN(array,len){len = (sizeof(array) / sizeof(array[0]));}
void print_arry(int *nums){
        int i;
        int len;
        GET_ARRAY_LEN(nums, len);
        printf("%d\n",len);
        for (i=0; i<len; i++)
                printf ("%d ", nums[i]);
}
int main() {
        int nums[]={ 2,7,3,11,15 };
        int target = 9;
        print_arry(nums);
        return 0;
}
But this is right, I don't where it is wrong.
#include <stdio.h>
#define GET_ARRAY_LEN(array,len){len = (sizeof(array) / sizeof(array[0]));}
int main() {
        int nums[]={ 2,7,3,11,15 };
        int target = 9;
        int len;
        GET_ARRAY_LEN(nums, len);
        printf("%d\n",len);
        return 0;
}