pyt*_*nic 1 c linux gcc segmentation-fault
我的程序包含以下代码.
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();
Run Code Online (Sandbox Code Playgroud)
代码在调用时给出了分段错误pthread_create(通过gdb和检查valgrind).为什么这样?
这是因为你i在循环内重新声明变量.循环中的变量正在使用,它包含垃圾值.这就是为什么表达式&PThreadTable[i]指向错误的地址并且您得到分段错误.
| 归档时间: |
|
| 查看次数: |
4252 次 |
| 最近记录: |