OpenMP-Examples/sources/Example_copyprivate.2c.c
2015-01-13 11:38:24 -08:00

37 lines
512 B
C

/*
* @@name: copyprivate.2c
* @@type: C
* @@compilable: yes
* @@linkable: no
* @@expect: success
*/
#include <stdio.h>
#include <stdlib.h>
float read_next( ) {
float * tmp;
float return_val;
#pragma omp single copyprivate(tmp)
{
tmp = (float *) malloc(sizeof(float));
} /* copies the pointer only */
#pragma omp master
{
scanf("%f", tmp);
}
#pragma omp barrier
return_val = *tmp;
#pragma omp barrier
#pragma omp single nowait
{
free(tmp);
}
return return_val;
}