Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 数组作为函数参数查找数组长度时出错_C++_C - Fatal编程技术网

C++ 数组作为函数参数查找数组长度时出错

C++ 数组作为函数参数查找数组长度时出错,c++,c,C++,C,在第6行中,for循环条件中的状态无法计算数组的大小 1. int minimum(int arr[]){ 2. 3. int min,pos = 0; 4. min = arr[0]; 5. int i; 6. for(i = 0;i<(sizeof(arr)/sizeof(*arr));i++){ 7. if(arr[i]<min){ 8. min = arr[i]; 9. pos

在第6行中,for循环条件中的状态无法计算数组的大小

1.  int minimum(int arr[]){
2.
3.     int min,pos = 0;
4.     min =  arr[0];
5.     int i;
6.     for(i = 0;i<(sizeof(arr)/sizeof(*arr));i++){
7.         if(arr[i]<min){
8.             min = arr[i];
9.             pos = i;
10.        }
11.     }
12.     return arr[pos];
13.  }
编译时元素的数量未知,sizeofarr无法为正确的值赋值,它将为sizeofint*赋值,因为这是arr的类型

但是在

int minimum(int arr[])

<编译时的ARR的大小已知:

简短答案:你不能。你使用C还是C++?如果是C++,那么STD::数组就是你要找的。常规数组是哑的,因为它们不知道自己的大小。在本网站发布时,您如何正确格式化代码的一些信息。在int minimumint arr[42]中,编译器仍然不知道元素的数量。@WeatherVane是的,我不够清楚,我编辑,谢谢您的建议
void f()
{
   int arr[3];

   printf("%d\n", sizeof(arr)/sizeof(*arr));
}