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 :
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.
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); } }
Ma question est donc : l'initialisation par constructeurs avec param�tres est-elle compl�tement occult�e par les sections ???
Merci par avance.
Cordialement.
Partager