我试图修改此代码整数参数的工作:需要帮助整形变量(线程)
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <string.h>
void* worker (void* param) {
int* nr = (int *) param;
printf ("I got: %d\n",nr);
}
int main (int argc, int *argv[])
{
pthread_t th;
int i;
for(i=1;i<argc;i++){
pthread_create (&th, NULL, worker,(void*)argv[i]);
pthread_join (th, NULL);
}
}
这不是工作,不便指点一下,我不明白。任何人都可以解释我?我不想使用“atoi”功能。 对于号码5和2获得:-1078000975,-1078000973以及警告:
11:3:警告:格式 '%d' 期望类型 'INT' 的参数,但参数2具有输入“INT *'[-Wformat =] printf(“我得到了:%d \ n”,nr); ^
'INT NR = *(INT *)param' – 2014-11-02 13:42:28
代码覆盖在“日”为创建的每个线程的值,因此在pthread_join将只能看到最后一个线程创建的,不是所有的线程 – user3629249 2014-11-02 21:32:20