#include #include int main(int argc, char* argv[]) { struct foo { int *a, *b, c, d, *e; } s; s.a = (int *) malloc (16 * sizeof (int)); s.b = (int *) malloc (16 * sizeof (int)); s.e = (int *) malloc (16 * sizeof (int)); #pragma acc data copy(s) { #pragma acc data copy(s.a[0:10]) { #pragma acc parallel loop attach(s.a) for (int i = 0; i < 10; i++) s.a[i] = i; } } for (int i = 0; i < 10; i++) assert (s.a[i] == i); return 0; }