如何计算c中的数组大小

时间:2014-05-14 11:47:01

标签: c

如果我有一个将数组作为参数传递的函数。有没有办法计算被调用函数中的数组大小,如果size也不作为参数传递。 这是片段:

void array_size(int array[])
{
  //How i can calculate the array size here
}

int main()
{
   int a[]={1,2,3};
   array_size(a);
}

1 个答案:

答案 0 :(得分:1)

array_size()函数内,"数组"是一个指针。它被转换为指向调用函数中第一个元素的指针。

如果你需要知道尺寸,你需要传递它。在main()函数中,a是一个数组,您可以使用

计算元素数量
number_of_elements = sizeof a / sizeof *a;

然后将其传递给函数(需要更新)

array_size(a, number_of_elements);
//         ^ the array is converted to a pointer to its first element