嗨,只想知道这个错误意味着什么

时间:2016-03-26 03:35:55

标签: c++ visual-c++

“错误C2660:'storeInitialValues':函数不带1个参数”当我尝试构建时,会出现在我的代码的日志中。我已经看过这里发布的一些过去的错误,我认为可能是某个/所有usersize,v,dsize和/或asize的初始化错误。我只是想看看storeInitialValues(usersize,v,dsize,asize)的特定调用的错误;而已。非常感谢你提前。

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <ctime>
#include <cstdlib> 
using namespace std;

struct vec
{

};

struct arr
{

};

void fillArray(int A[], int size);
void storeInitialValues(int * & arr, int & asize, int & dsize, vector<int>& v, int & usersize);


int main()
{
    int usersize, dsize, asize;
    vector <int> v;
    int * ptr = new int[10];
    cout << "How many values in data structures? Please enter values greater than 20." << endl;
    cin >> usersize;
    while (usersize < 21)
    {
        cout << "Error, enter values greater than 20!" << endl;
        cin >> usersize;
    }
    cout << "Alright, here are your numbers: " << endl;
    storeInitialValues(usersize, v, dsize, asize);

}

// fillArray stores sequential, unique, integer values into an array and 
//   then randomizes their order
void fillArray(int A[], int size)
{
    srand((int)time(0));
    for (int i = 0; i < size; i++)
    {
        A[i] = i + 1;
    }
    for (int k = size - 1; k>1; k--)
    {
        swap(A[k], A[rand() % k]);
    }
}

// storeInitialValues calls fillArray to produce an array of unique randomly
//   organized values and then inserts those values into a dynamically sized
//   array and a vector.
void storeInitialValues(int * & arr, int & asize, int & dsize, vector<int>& v, int usersize)
{
    int * temp = new int[usersize];         // temporary array for randomized data
    fillArray(temp, usersize);              // get data
    for (int i = 0; i < usersize; i++)      // copy data into the dynamic data structures
    {
        add(arr, asize, dsize, temp[i]);
        v.push_back(temp[i]);
    }
    delete[] temp;                          // clean up temporary pointer
    temp = NULL;
}

void add(int & usersize, int & arr, int & dsize, int & temp[i])
{

}

void remove()
{

}

1 个答案:

答案 0 :(得分:0)

您对storeInitialValues的调用与声明无关。我想你可能会觉得变量的名称很重要。事实并非如此。您必须以正确的顺序传递与函数声明中的变量类型匹配的变量,名称是无关紧要的。

int *&amp; arr是一个非常奇怪的声明。 int * arr将是一个指向int的指针,您可以将其视为数组。你究竟打算用int *&amp ;?混合*和&amp;要求您对使用非常小心。但是你也在使用vector,这是一种处理数组的非常安全的方法。为什么不使用矢量?您还在main函数中声明和分配ptr,但您不使用它,也不删除它。