Bonjour,

Je développe un soft multithread en C.

Dans ce prgm, une structure peut être utilisée par plusieurs thread à la fois. Je n'arrive pas à me rappeler si lorsqu'on passe une structure en paramètre d'une fonction, elle est passée par valeur ou par référence.

Ma structure est assez spéciale, du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
typedef struct {
	int Var1;
        char 	Tab1[20];
        unsigned char pData*;
} MA_STRUCTURE;
 
MA_STRUCTURE gS1;
 
int fonction1(MA_STRUCTURE s)
{
     ....   
}
Si j'utilise cette structure gS1 dans la fonction1, est ce que :
- s est une nouvelle variable locale ?
- s.pData à la même adresse que gS1.pData ?
- s.Tab1 à la même adresse que gS1.Tab1 ?

Pour résumer, j'aimerais être sûr qu'il n'y aura pas de conflit d'accès entre les différents threads sur la même variable.

Merci d'avance pour vos réponses.