抱歉,这可能是一个非常简单的修复,但我似乎无法将其编译 分配要求我使用动态内存,代码必须以这种方式编写。 基本上我似乎无法将我的数组传递给函数。
#include<iostream>
#include<cmath>
using namespace std;
// Comment:
void count(int array[],int length,int& numneg,int& numpos);
// Comment:
void split();
// Comment:
void print_array();
int main(){
int length(0),x(0),numpos(0),numneg(0);
cout << "Enter number of elements: ";
cin >> length;
int *array = new int[length];
cout << "Enter list:" << endl;
cin >> x;
for (int i(0);i<(length-1);i++)
{
array[i] = x;
cin >> x;
}
count(array[length],length,numneg,numpos);
delete [] array;
return 0;
}
void count(int array[],int length,int& numneg, int& numpos)
{
for (int i(0);i<(length-1);i++)
{
if (array[i] < 0)
numneg++;
else
numpos++;
}
}
答案 0 :(得分:0)
将数组或指针传递给函数时,只需使用变量的名称即可。
您致电count
需要:
count(array,length,numneg,numpos);
使用array[length]
访问长度索引处的点元素,这将是int
而不是int*
,更不用说是超过您的大小的一个元素缓冲液中。