我試圖修改此代碼整數參數的工作:需要幫助整形變量(線程)
#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