How to find the size of an integer array in C.
Any method available without traversing the whole array once, to find out the size of the a开发者_Python百科rray.
If the array is a global, static, or automatic variable (int array[10];), then sizeof(array)/sizeof(array[0]) works.
If it is a dynamically allocated array (int* array = malloc(sizeof(int)*10);) or passed as a function argument (void f(int array[])), then you cannot find its size at run-time. You will have to store the size somewhere.
Note that sizeof(array)/sizeof(array[0]) compiles just fine even for the second case, but it will silently produce the wrong result.
If array is static allocated:
size_t size = sizeof(arr) / sizeof(int);
if array is dynamic allocated(heap):
int *arr = malloc(sizeof(int) * size);
where variable size is a dimension of the arr.
_msize(array) in Windows or malloc_usable_size(array) in Linux should work for the dynamic array
Both are located within malloc.h and both return a size_t
int len=sizeof(array)/sizeof(int);
Should work.
加载中,请稍侯......
精彩评论