关于函数中,指针参数的有关问题。来朋友们帮帮忙~多谢

关于函数中,指针参数的问题。来朋友们帮帮忙~谢谢~
问题是 error C2664: 'result' : cannot convert parameter 1 from 'int' to 'int *'
result函数只是接受了数组的头地址,然后返回一个整形参数,为什么会错,不知道该怎么改,谢谢帮忙。

#include<iostream>

int result(int *a,int M);

void main()
{
int i;
std::cout << "输入测试组数:" << "\n";
std::cin >> i;
for( int j=0;j<i;j++ )
{
int l,m;
std::cout << "请输入总区域长度:" << " "<<"请输入区域的数目:"<< "\n";
std::cin >> l ;
std::cin >> m ;
int M=2*m;

int n;
int *a=new int[n];
for( n=0;n<M; )
{
std::cout <<"请输入起始点:"<<" "<<"请输入终止点:";
std::cin >> a[n];
n++;
std::cin >> a[n];
n++;
}

for( int j=0;j<M;j++ )
{
for( n=0;n<M;n++ )
{
if( a[n]<a[n+1] )
{
;
}
else
{
a[n+1]=a[n];
}
}
}

int r;
r=result(*a,M);

std::cout << r <<'\n';

}
}

int result(int *a,int M)
{
int s=0;
int n;
for(   n=0;n<M;n++ )
{
s=s+a[n+1]-a[n];
}
return s;
}




------解决方案--------------------
r = return(a, M);
------解决方案--------------------
*a = a[0]

直接a 就行了