将 main 的 *argv[] 传递给另一个函数正在调用的函数?

Pass main's *argv[] to a function that is being called by another function?

所以我有我的主要功能,以及 2 个其他功能,func1 和 func2。 main 从用户那里获取参数,将它们传递给 func1。 fun1 检查一些东西,然后想将参数发送给 func2。

我该怎么做?

 int main( int argc, char *argv[] )  {
  if( argc == 3 ){
    func1(argv);
  }

void func1(char **argv){
if(strcmp(argv[2], "-win"))
    func2(argv);
}

void func2(char ***argv){ //is this the right way?
......
}

我的意思是我知道 func1 正在接收参数,因为当我尝试它而不将它们发送到 func2 时,它起作用了。 但我想弄清楚如何将它们从 func1 发送到 func2。

查看文件 main.c 中的这段代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void func1(char **argv);
void func2(char **argv);

int main(int argc, char *argv[])
{
    // you are need to pass 2 things to run this
    if (argc == 3)
    {
        func1(argv);
    }
    return 0;
}

void func1(char **argv)
{
    if (strcmp(argv[2], "-win")==0)
        func2(argv);
}

void func2(char **argv)
{
    printf("%s\n", argv[2]);
}

运行 gcc -Wall main.c -o main && ./main f -win 你得到了 输出:-win 到控制台。您不应该在 argv 内操作数据,更安全的做法是将 func2 更改为:

char *func2(char **argv)
{
    // Return some value after receiving argv
}

和 return 无论您的结果是您想要执行的操作的类型。