gpt4 book ai didi

c - pthread_create 导致段错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:37 24 4
gpt4 key购买 nike

我的程序包含以下代码。

pthread_t PThreadTable[32];

for (i=1; i<P; i++) // Checked with P = 4
{
long i, Error;

printf( "pthread_create %d!\n", i );
Error = pthread_create(&PThreadTable[i], NULL,
(void * (*)(void *))(SlaveStart), NULL);
if (Error != 0)
{
printf("Error in pthread_create().\n");
exit(-1);
}
}

SlaveStart();

代码在调用 pthread_create 时给出了段错误(通过 gdbvalgrind 检查)。为什么会这样?

最佳答案

这是因为您在循环内重新声明了变量 i。正在使用循环内的变量,它包含垃圾值。这就是为什么表达式 &PThreadTable[i] 指向错误的地址并且您会遇到段错误。

关于c - pthread_create 导致段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11249588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com