Bonjour,

je viens de d�couvrir l'une de mes limites dans la compr�hension d'openmp.

Je suis dans une fonction dans laquelle j'utilise deux sections pour parall�liser deux bouts de codes. Dans ces deux bouts de code, j'utilise deux objets de type CMatrice (une classe que j'ai cr��e moi-m�me, qui contient deux entiers et un pointeur double**) qui sont d�finis priv�s pour chacune des sections.

Or, en instanciant les deux objets, j'appelle un constructeur � deux param�tres entiers, qui sont affect�es aux deux entiers membres de la classe, et qui alloue dynamiquement le double** avec ces deux entiers.

MAIS, quand je souhaite modifier dans chaque section les deux objets, j'obtiens une erreur de segmentation, car il semble que le pointeur double** ne soit pas allou�.

Voici mon code :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
CMatrix P1(2,2)
CMatrix P2(2,2);
 
 #pragma omp sections private(P1, P2)
  {
    #pragma omp section
    {
       P1.set(0,0,1);
       P1.set(0,1,2);
       P1.set(1,0,3);
       P1.set(1,1,4);
    }
    #pragma omp section
    {
       P2.set(0,0,1);
       P2.set(0,1,2);
       P2.set(1,0,3);
       P2.set(1,1,4);
    }
}
Je n'ai pas mis le vrai bout de code qui modifie les matrices, mais cela revient exactement au m�me. Le code m'envoie une erreur de segmentation quand j'essaie d'acc�der � l'�lement 0,0 de P1 ou P2.

Ma question est donc : l'initialisation par constructeurs avec param�tres est-elle compl�tement occult�e par les sections ???

Merci par avance.

Cordialement.