Bonjour à tous,

je travaille sous WinXPSP3 / MS Visual Studio Express Edition 2008 / langage C.

J'ai créé un pointeur *pTab sur un tableau de structure FLOW_UNIT_s de taille N.
La structure FLOW_UNIT_s est décrite ci - dessous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
typedef struct FLOW_UNIT_s{
	time_t	tF;				
	int inc;				
	int cnt;				
	double volt;			
}FLOW_UNIT_s;
La zone mémoire pointée par *pTab est actualisée en temps réel par un thread1. Le thread1 écrit dans *pTab, attend 40 ms, écrit dans *p(Tab+1), attend 40 ms, .... jusqu'à *p(Tab+N-1).

Quand on arrive au Nième élément, un autre thread2 doit faire une copie de ce qui est contenu à l'instant t dans la zone mémoire pointée par *pTab (pendant ce temps, le thread1 continue à faire son travail, c'est à dire commence à écraser *pTab, *(pTab+1), ...).

Ma question est la suivante : comment puis-je faire une copie du contenu de la zone mémoire pointée par *pTab à un instant donné dans une variable temporaire alors que le thread1 continue sa mise à jour ?

J'ai défini un nouveau pointeur *pTab_temp = *pTab. Mais forcément la copie est actualisée en même temps que *pTab.

Je suis preneur des idées que cette discussion vous inspirera.

Merci d'avance.
LePapat