嗨,只想知道这个错误是啥意思

Posted

技术标签:

【中文标题】嗨,只想知道这个错误是啥意思【英文标题】:Hi, Just Want to Know What This Error Means嗨,只想知道这个错误是什么意思 【发布时间】:2016-03-26 03:35:55 【问题描述】:

"error C2660: 'storeInitialValues' : function does not take 1 arguments" 当我尝试构建时出现在我的代码日志中。我查看了此处发布的一些过去错误,我认为这可能是某种/所有用户大小、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()



【问题讨论】:

看起来该函数需要 5 个参数,但您只使用 4 个参数调用它。此外,您有矢量,但出于某种奇怪的原因,您不会将它用于它本来要用于的事情。 int *temp = new int[usersize]; 之类的东西可以简单地替换为 std::vector&lt;int&gt; temp(usersize); storeInitialValues 函数需要 5 个参数,您只传递了 4 个。此外,第一个参数为 *& 的函数定义看起来是错误的。将输入定义为 * 并传递地址。 请把你的问题具体写在标题上。 【参考方案1】:

您对 storeInitialValues 的调用与声明不符。我认为您可能会感到困惑,认为变量的名称很重要。事实并非如此。您必须以正确的顺序传递与函数声明中的变量类型匹配的变量,名称无关紧要。

int * & arr 是一个很奇怪的声明。 int *arr 将是指向 int 的指针,您可以将其视为数组。您使用 int * & 的目的到底是什么?混合 * 和 & 要求您在使用时非常小心。但是您也在使用向量,这是一种非常安全的处理数组的方法。为什么不只使用向量?您还在 main 函数中声明和分配 ptr 但您不使用它也不删除它。

【讨论】:

以上是关于嗨,只想知道这个错误是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

参考 - 这个错误在 PHP 中是啥意思?

参考 - 这个错误在 PHP 中是啥意思?

MS VC++ 2010的这个链接器错误是啥意思[重复]

IE8 中的 xhr.status 为 8 是啥意思?

核心动画渲染错误 506 是啥意思?

不知道错误是啥意思:铁路由器的错误:需要网址