复制字符串数组(或将它们复制到另一个数组)?

Bla*_*ary 4 c string pointers arguments

我需要在启动时传递给我的进程的参数.这意味着,argv[]我需要除了第一个之外的所有(这是我的进程名称).

我无法复制它,因为它是类型char * argv[].任何人都可以给我一个如何正确地做到这一点的要点,或者可能是一个小代码片段.我宁愿把头撞在墙上.

编辑:

澄清我的问题:

关键是我需要除argv的第一个参数以外的所有参数.所以我不能把它发送到其他进程,因为我实际上将它作为execv的参数.

fiz*_*zer 5

复制字符串没有意义 - 它们将在程序的生命周期内持续存在,并且不允许您修改它们.只需将argc和argv传递给任何需要它们的人,或将它们复制到全局变量中.

#include <stdio.h>

int myargc;
char **myargv;

void print_args()
{
    int i;
    for (i = 1; i < myargc; ++i) {
        puts(myargv[i]);
    }
}    


int main(int argc, char **argv)
{
    myargc = argc;
    myargv = argv;

    print_args();

    return 0;
}    
Run Code Online (Sandbox Code Playgroud)