开发者

How to find the size of integer array

开发者 https://www.devze.com 2022-12-29 11:56 出处:网络
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 au

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消