0

抱歉,这可能是一个非常容易解决的问题,但我似乎无法编译它 分配要求我使用动态内存,并且代码必须以这种方式编写。基本上我似乎无法将我的数组传递给函数。

#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++;
    }

}
4

1 回答 1

0

传递数组或函数指针时,只需使用变量名即可。

您致电count需要:

count(array,length,numneg,numpos);

通过使用array[length]您访问长度索引处的点的元素,这将int不是一个int*更不用说超过缓冲区大小的元素。

于 2013-11-12T04:08:40.670 回答