【发布时间】:2022-01-03 23:42:36
【问题描述】:
我希望输出为 6 和 4 四个数组 A 和 B,但我不知道我在哪里犯了错误。我阅读了有关 StackOverflow 的教程,您可以通过执行 length = sizeof(array)/sizeof(array[0]) 来计算 int 数组长度,但它在我的程序中不起作用。无论我是否更改数组,sizeof(array) 和 sizeof(array[0]) 的值都保持不变,如下所示。
#include<stdio.h>
#include<string.h>
int arraychecker(int array[])
{
int Length =sizeof(array)/sizeof(array[0]);
int arraylength = sizeof(array);
int arraylength0 = sizeof(array[0]);
printf("%d,%d,%d\n", Length, arraylength, arraylength0);
}
int main()
{
int a[]= {2,1,3,4,9,33};
int b[]={2,55,3,2};
arraychecker(a);
arraychecker(b);
return(0);
}
输出:2,8,4 2,8,4
【问题讨论】:
-
在函数中找不到长度,因为数组在传递给函数时会衰减为指针,丢失长度信息。您需要将长度作为额外参数传递。
标签: arrays c sorting multidimensional-array string-length