如何查找整数数组的大小

AGe*_*eek 25 c arrays

如何在C中查找整数数组的大小

任何方法都可用而不遍历整个数组一次,以找出数组的大小.

sbi*_*sbi 81

如果数组是全局变量,静态变量或自动变量(int array[10];),则sizeof(array)/sizeof(array[0])可行.

如果它是动态分配的数组(int* array = malloc(sizeof(int)*10);)或作为函数参数(void f(int array[]))传递,那么您无法在运行时找到它的大小.你必须在某处存放大小.
请注意,sizeof(array)/sizeof(array[0])即使对于第二种情况,编译也很好,但它会默默地产生错误的结果.


use*_*453 5

如果数组是静态分配的:

size_t size = sizeof(arr) / sizeof(int);
Run Code Online (Sandbox Code Playgroud)

如果数组是动态分配的(堆):

int *arr = malloc(sizeof(int) * size);
Run Code Online (Sandbox Code Playgroud)

其中可变大小是 arr 的维度。