当我尝试运行此代码时,收到了Segmentation fault(核心转储)错误消息。 注意:这是一个非常长的程序(近600行),所以我只发布了我认为是相关的。让我知道是否还需要?感谢提前:)使用pthread_create()的参数4发生Seg故障
#define CONSTANT 4
int main()
{
pthread_t tid[CONSTANT];
int i, check;
for(i = 0; i < CONSTANT; i++)
{
check = pthread_create(&tid[i], NULL, tFunction, (void *) CONSTANT);
}
}
void * tFunction (void * param)
{
int num = * (int *) param; /* Seg fault line */
}
被警告说,传递一个指向局部变量的指针是潜在的危险,这取决于调用函数的生命周期。 –
是的,只是在这个例子中,它没有任何区别。 – AusCBloke
哦,是啊!那就是我在做的事情:)我玩了一圈,忘了在代码中改回它。无论如何,这给了我一个错误:左值需要作为一元操作数。有任何想法吗? – Dino55