我在一段时间内没有用c编码,而且我的指针也不是很好。
我有这个主要的开始。
int main(int argc, char *argv[])
我需要能够在全局范围内复制* argv []以允许多个线程访问它,是否有快速/简单的方法来执行此操作?
答案 0 :(得分:3)
您无需复制 argv
数组(授予main
)。您只需要将指针传送给您的线程。这很容易(通过参数传递它,或者通过包含它的一些全局变量)。
答案 1 :(得分:1)
一种方法:
char ** prog_argv;
int prog_argc;
int main(int argc, char *argv[])
{
prog_argv = argv;
prog_argc = argc;
. . .
}
这声明了一个指向prog_argv
数组的全局指针argv[]
。请注意,您还应该使用全局prog_argc
来保证安全(尽管我认为argv[argc]
是一个空指针(?))。
当然,您需要在头文件中声明prog_argv
和prog_argc
,以获得其他项目源文件的好处。
某些操作系统已经为您执行了类似的操作。全局变量的名称通常类似于_argv
或__argv
。