openmp编程问题!!(关于parallel中return语句)
我在这段parallel中使用了return语句,在编译时出错。是不是parallel中不能使用return语句呢?我看的书上说parallel for中不能使用return。如果不能使用return,如果malloc不成功怎么跳出并行体返回呢?
#pragma omp parallel private(threadid,numthreads,prj,slc,n)
{
threadid=omp_get_thread_num();
numthreads=omp_get_num_threads();
if((prj=(Proj *)malloc(sizeof(Proj)*vol.X*AngN))==NULL)
{
printf("Error with Function 'ATOM()'!Can't malloc memery for 'prj' !");
return FALSE;
}
if((slc=(Slice *)malloc(sizeof(Slice)))==NULL)
{
printf("Error with Function 'ATOM()'!Can't malloc memery for 'slc'!");
return FALSE;
}
if((slc->data=(float *)malloc(sizeof(float)*slid->X*slid->Z))==NULL)
{
printf("Error with Function 'ATOM()'!Can't malloc memery for slc->data !");
return FALSE;
}
#pragma omp for
for(j=0;j<vol.Y;j++)
{