Comment faire pour s'assurer qu'un tableau alloué dynamiquement est privé dans openmp

Je travaille en C avec openMP à l'aide de gcc sur une machine linux. Dans un parallèle openmp pour la boucle, je peux déclarer une allouée statiquement tableau comme privé. Le fragment de code:

int a[10];
#pragma omp parallel for shared(none) firstprivate(a)
for(i=0;i<4;i++){

Et tout fonctionne comme prévu. Mais si, au contraire, j'alloue de manière dynamique,

int * a = (int *) malloc(10*sizeof(int));
#pragma omp parallel for shared(none) firstprivate(a)

les valeurs de a (au moins un[1...9]) ne sont pas protégés, mais d'agir comme si elles sont partagées. Ceci est compréhensible dans la mesure où rien dans le pragma commande semble dire omp comment big le tableau un qui a besoin d'être privé. Comment puis-je transmettre cette information à openmp? Comment dois-je déclarer la totalité de la allouée dynamiquement tableau en privé?

source d'informationauteur cboettig