c编程数组和指针

时间:2011-10-24 19:32:30

标签: c pointers

我在一段时间内没有用c编码,而且我的指针也不是很好。

我有这个主要的开始。

int main(int argc, char *argv[])

我需要能够在全局范围内复制* argv []以允许多个线程访问它,是否有快速/简单的方法来执行此操作?

2 个答案:

答案 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_argvprog_argc,以获得其他项目源文件的好处。

某些操作系统已经为您执行了类似的操作。全局变量的名称通常类似于_argv__argv