C ++传递数组函数不正确

时间:2015-12-08 12:27:35

标签: c++ arrays

我想将数组传递给函数。 在调试模式下进行调查时,我检测到只有主要部分中数组的第一个元素被传递给函数。 我不知道为什么这是通过整个数组或纠正什么。 在主要移动时,功能代码工作正常。

double avg(int arr[]) {
    int ArrayLength = sizeof(arr) / sizeof(arr[0]);
    int sum = 0; 
    double average = 0;
    cout << ArrayLength << endl;
    for (int i = 0; i < ArrayLength; i++) {
        sum += arr[i];
    }
    return double(sum)/ArrayLength ;
};

int main()
{
    int Arr[] = { 2,4,6,8,10,12,20 };
    cout << "Average value is: " << avg(Arr) << endl;
    return 0;
}

1 个答案:

答案 0 :(得分:0)

您没有声明数组的大小,因此sizeof返回单个元素的大小。但是,所有数据都将存储在内存中,但超出了规模。

传递长度(正常),或修改声明中的大小