Ich versuche, ein Array mit dem Array von argv zu verketten (ich den offiziellen Namen für das vergessen haben, Eingabe-Array? Parameter-Array?)c Array Verkettung Problem
wie auch immer, ich initialisieren das ursprüngliche Array, dann Verwenden Sie memcpy
, um die zwei Arrays in das neue Array zu kopieren.
int main(int argc, char *argv[]) {
char *args1[] = {"foo","bar"};
char **args = (char**) calloc(argc, sizeof(char*));
memcpy(args, args1, sizeof(char*) * 2);
memcpy(args + sizeof(char*) * 2, argv+1, sizeof(char*) * (argc-1));
aber wenn ich laufen diese
printf("%s %s %s\n", args[0], args[1], args[2]);
und laufen dann
./test baz
ich ein Ergebnis von
foo bar (null)
So versuche ich mein zweites Memcpy geschraubt, um herauszufinden, wo, aber ich kann es nicht finden. Irgendeine Hilfe? Danke im Voraus.
seufzen. Ich kenne meine Zeigerarithmetik, also war es dumm von mir, diese Art von Fehler zu machen und es nicht zu bemerken. Das ist das letzte Mal, dass ich einen Zeiger von Rosettacode nehme –