"Fehler C2660: 'storeInitialValues': Funktion dauert nicht 1 Argumente" zeigt sich im Protokoll meines Codes, wenn ich versuche zu bauen. Ich habe einige der hier geposteten Fehler angeschaut und ich denke, es könnte eine Art von Initialisierungsfehler sein, entweder mit/usersize, v, dsize und/oder asize. Ich möchte nur den Fehler beim spezifischen Aufruf von storeInitialValues (usersize, v, dsize, asize) sehen; das ist es. Vielen Dank im Voraus.Hallo, möchte nur wissen, was dieser Fehler bedeutet
#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()
{
}
Sieht so aus, als ob diese Funktion 5 Parameter benötigt, aber Sie rufen sie mit nur 4 Parametern auf. Außerdem haben Sie einen Vektor, aber aus irgendeinem Grund verwenden Sie ihn nicht für die Dinge, für die er verwendet werden sollte. Dinge wie 'int * temp = neuer int [usersize];' könnten einfach durch 'std :: vector temp (usersize) ersetzt werden;' –
PaulMcKenzie
storeInitialValues-Funktion nimmt 5 Argumente, die Sie nur übersprungen haben 4.Auch die Funktionsdefinition mit dem ersten Argument als * & sieht falsch aus. Definieren Sie die Eingabe als * und übergeben Sie die Adresse. –
Bitte schreiben Sie, was Ihr Problem auf den Titel spezifisch ist. –