Also mache ich eine Funktion, um certatin Elemente eines Vektors zu nehmen und sie in einem anderen Vektor zu speichern. Wann immer ich das Programm starte, gibt es einen Segmentierungsfehlerfehler? Warum passiert das und wie kann ich Dinge reparieren, damit das nicht passiert?Vektoren, die an die Funktion übergeben werden, werden nicht geändert
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void addition (vector <char> a, vector <string> b)
{
for (int i = 0; i < a.size(); ++i)
{
if (a[i] == '3')
{
b.push_back("3");
}
if (a[i] == '4')
{
b.push_back("4");
}
if (a[i] == '+')
{
b.push_back("+");
}
}
}
int main()
{
vector <char> v1 = {'3', '4', '+', '3', '4'};
vector <string> v2;
addition(v1, v2);
cout << v2[0] << endl;
return 0;
}
Warum passieren? Ich bin verwirrt – bastwendo
Ich sah nicht genau genug, mein Fehler. Nahm es zurück – CIsForCookies
Der Fluss des Programms wird viel klarer, wenn Sie Out-Parameter vermeiden. Z.B. '' 'Vektor Addition (Vektor a)' ''. Es gibt viele andere gute Gründe, sie zu vermeiden. –
tillaert