【发布时间】:2015-08-15 08:28:59
【问题描述】:
您好,我正在尝试创建一个线程来调用一个采用结构的函数。 我面临的问题是 gcc 告诉我一个不兼容的指针
这是错误
warning: passing argument 3 of ‘pthread_create’ from incompatible pointer type [enabled by default]
/usr/include/pthread.h:225:12: note: expected ‘void * (*)(void *)’ but argument is of type ‘void * (*)(struct sonicPins *)
’
与此错误相关的代码行
pthread_create(&thr1, NULL, &threadFunc,(void*) &args1);
这是它试图调用的函数
void* threadFunc(struct sonicPins *args)
结构体在sonicThread.h中定义,主要指向结构体
在我的主要功能之上
struct sonicPins *args1;
我主要有
args1 = malloc(sizeof(struct sonicPins));
args1->trig1 = 21;
args1->echo1 = 20;
//front right.
args1->trig2 = 16;
args1->echo2 = 12;
//rear left;
args1->trig3 = 26;
args1->echo3 = 19;
//rear right.
args1->trig4 = 13;
args1->echo4 = 6;
我尝试了各种方法来解决该问题,但找不到或想出解决问题的方法。
【问题讨论】:
-
我回滚了您的编辑,因为它使下面的答案毫无意义。得到答案后请不要更改代码。发布新问题或添加更新代码而不删除旧代码。