標籤:info null typedef amp name char eof 一個 type
前言:c語言中建立一條線程,但是需要傳送多個參數給線程的話我們自然會想到通過傳送數組或者結構體來實現,下面我們來看看如何在建立線程的時候傳送結構體和數組。
1 #include <stdio.h> 2 #include <pthread.h> 3 #include <stdlib.h> 4 #include <string.h> 5 6 typedef struct Student 7 { 8 int num; 9 char name[10];10 }info;11 12 void *message(void *arg)13 {14 info *p = (info*)arg;15 printf("num:%d name:%s\n",p->num,p->name);16 17 }18 19 void *read_routine1(void *arg)20 { int *fd;21 fd = (int*)arg;22 // fd[0] = ((int *)arg)[0];23 // fd[1] = ((int *)arg)[1];24 printf("fd[0]:%d fd[1]:%d\n",fd[0],fd[1]);25 }26 27 28 int main(int argc,char *argv[])29 { 30 info *st = (info*)malloc(sizeof(info));31 st->num = 10;32 strcpy(st->name,"xiaoming");33 int fd[2];34 fd[0] = 12;35 fd[1] = 32;36 pthread_t tid1,tid2;37 /*建立兩條線程,第一條傳送的是一個結構體,第二條是數組*/38 pthread_create(&tid2,NULL,message,(void*)st);39 pthread_create(&tid1,NULL,read_routine1,(void*)fd);40 while(1);41 free(st);42 return 0;43 }
經測試,這種方法是可行的。
c語言線程中傳輸多個參數