小编Kko*_*Kko的帖子

如何动态分配(初始化)pthread数组?

我有一个pthread指针,我需要为指针分配足够的空间来保存足够数量的pthread.然后初始化它们和pthread_create()以将线程传递给某些函数.

问题是,如果我只使用malloc为指针分配空间,那么只需使用指针[index]进行pthread_create,就不会正确创建线程.我该如何解决这个问题?我相信pthread_t是某种类型的结构,所以我相信我需要在进行pthread之前初始化它们.我怎么做?谢谢.

我刚用一定数量的pthread测试了它们是否正常工作:

pthread_t t1, t2, t3 ...... tn;
Run Code Online (Sandbox Code Playgroud)

然后

pthread_create(&t1, NULL, function, (void *)argument)
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用指针和malloc,它们将不会工作.线程将不会被创建.

pthread_t *ptr;

ptr = malloc(sizeof(pthread_t)*num);
Run Code Online (Sandbox Code Playgroud)

然后

pthread_create(&ptr[index], NULL, function, (void *)argument)
Run Code Online (Sandbox Code Playgroud)

不管用.在这种情况下,如何初始化然后ptr [index]?

c pthreads

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

pthreads ×1