传递动态数组(简单)

时间:2013-11-12 03:59:56

标签: arrays pointers

抱歉,这可能是一个非常简单的修复,但我似乎无法将其编译 分配要求我使用动态内存,代码必须以这种方式编写。 基本上我似乎无法将我的数组传递给函数。

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

}

1 个答案:

答案 0 :(得分:0)

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

您致电count需要:

count(array,length,numneg,numpos);

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