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;
}