Ваш код, вероятно, должен выглядеть следующим образом (Linux Ubuntu + g cc):
#include <iostream>
using namespace std;
int sum(int n[], int m)
{
int s=0;
for(int z=0; z<m; z++)
{
cout<<"\n array["<<z<<"]= "<<n[z]<<"\n";
s+=n[z];
}
return s;
}
int main()
{
int *n,m;
cout<<"enter the size of array = ";
cin>>m;
n=new int[m];
for(int i=0; i<m; i++)
{
cout<<"\n enter array["<<i+1<<"] value = ";
cin>>n[i];
cout<<"\n";
}
int s = sum(n, m);
cout<<"s="<<s<<endl;
return 0;
}
Нет смысла выделять размер массива m динамически. Это обычная переменная int , которую можно инициализировать как
cin>>m;
. Вы также можете записать прототип sum в форме
int sum(int * n, int m)
Это еще один способ передачи одномерного массива в качестве параметра функции.
Честно говоря, эти вопросы являются самыми основами языка. Вам, вероятно, следует прочитать что-то вроде Dynami c распределение памяти / динамическое c массивы о динамике c выделение памяти и динамическое c массивы и простые случаи std :: cin Использование о простейших случаях использования std :: cin в C ++.