Ich habe einen String-Vektor vector<string> args
, den ich in eine c-Zeichenfolge konvertieren muss, um wiederum als Argumente durch einen execvp-Aufruf zu laufen. Ich bekomme den Fehler "ungültige Konvertierung von const Char * zu char * für die Zeile in meiner Schleife. Ich verstehe nicht, wie dies zu beheben, während immer noch etwas, was ich execvp füttern kann. Während ich ähnliche Beiträge gesehen haben, keine der Lösungen scheinen ich gekommen bin über mein Problem zu beheben.Falsche Typen, bei denen ein Vektor in execvp konvertiert wird
int argsLen = c->args.size();
char **argv = new char* [c->args.size() + 1];
for (int index = 0; index < c->args.size(); ++index)
argv[index] = c->args[index].c_str();//note that c is the structure in which args is contained
argv[c->args.size() + 1] = NULL;
//execvp(argv[0], argv);
dies funktioniert. Vielen Dank! – minusila
Wie werden Sie in nicht zugewiesenen Speicherplatz "strcpy"? Wenn ich nichts sehe, sieht das so aus, als würde ein Speicher überschrieben. – PaulMcKenzie
@PaulMcKenzie: Sie sehen tatsächlich etwas, das ich nicht tat, bearbeitet, thx. – Unimportant