为什么我不能在C ++中调用max函数?

时间:2018-10-02 20:18:07

标签: c++ pointers dynamic-memory-allocation

在堆中分配一个数组之后。我试图使一个函数max来查找带有指针的数组中的最大数字,但是它给了我这个错误:-在函数'int main()'中: 错误:最大值,无法用作函数。   这是代码:

     #include<iostream>
     using namespace std;

    int max(int *v,int n){
       int i,max=0;
        for(i=1;i<=n;i++){
            if(*(v+i)>max)
                max=v[i];
        } 
        return max;
    }

     int main(){
     int *v,n,i;

  //read n    
     cout<<"Number of elements  ";
     cin>>n;

     v = new int[n];

    //read elements
    cout<<"Array Ellements:";
    for(i=1;i<=n;i++){
        cin>>v[i];
    }

    // output array elements   
    for(i=1;i<=n;i++){
        cout<<v[i];
        if(i<n)
        cout<<",";

    }
    cout<<endl;

     //max store the biggest number in the array
     int max;
     max = max(v,n);

        return 0;
    }

1 个答案:

答案 0 :(得分:0)

在同一个作用域中不能同时使用具有相同名称的函数和变量,并且不能同时使用它们。因此,这将永远无法工作(如您所发现的)

int max;
max = max(v,n); // the word 'max' now refers to the variable called 'max' not the function

int maxValue = max(v,n);