«[Ошибка] неверная ветвь в / из структурированного блока OpenMP» У меня есть эта ошибка - PullRequest
0 голосов
/ 03 мая 2020
struct dugum* ara(struct dugum* kok,int aranacakSayi)

{

double start; 
double end; 
start = omp_get_wtime(); 
    int i;
    #pragma omp parallel num_threads(4) shared(start,end,aranacakSayi) private(i)
    {
        #pragma omp for
                for(i=0;i<10;i++) { 
    printf("\n Kontrol edilen sayilar : %d Thread : %d \n \n",kok->sayi,omp_get_thread_num());


                if(kok->sayi==aranacakSayi || kok ==NULL  ){
                            end = omp_get_wtime(); 
             printf("Calisma zamani %f saniye \n", end - start);
                      return kok;

                }

    if (aranacakSayi > kok->sayi) 
        kok = kok->sag; 

     else if (aranacakSayi < kok->sayi) 
        kok = kok->sol;     
    }
    }



}

Я пытаюсь обойти inorder с openMP У меня есть эта ошибка. Код не возвращается "вернуть Кок", принять некоторые ошибки. Мне нужна помощь, чтобы исправить эту ошибку Это о структурированном блоке openMP.

1 Ответ

0 голосов
/ 04 мая 2020

Вы не можете return из параллельной области ... (Подумайте об этом. Как все потоки должны знать, что один из них хочет вернуться?)

...