嗨,只想知道这个错误是啥意思
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<int> temp(usersize);
storeInitialValues 函数需要 5 个参数,您只传递了 4 个。此外,第一个参数为 *& 的函数定义看起来是错误的。将输入定义为 * 并传递地址。
请把你的问题具体写在标题上。
【参考方案1】:
您对 storeInitialValues 的调用与声明不符。我认为您可能会感到困惑,认为变量的名称很重要。事实并非如此。您必须以正确的顺序传递与函数声明中的变量类型匹配的变量,名称无关紧要。
int * & arr 是一个很奇怪的声明。 int *arr 将是指向 int 的指针,您可以将其视为数组。您使用 int * & 的目的到底是什么?混合 * 和 & 要求您在使用时非常小心。但是您也在使用向量,这是一种非常安全的处理数组的方法。为什么不只使用向量?您还在 main 函数中声明和分配 ptr 但您不使用它也不删除它。
【讨论】:
以上是关于嗨,只想知道这个错误是啥意思的主要内容,如果未能解决你的问题,请参考以下文章