Bonjour,
Je développe une application console avec vS2012 update4 en C++.
suite à l'appel du bout de code suivant :
*this = ResultInter
qui appelle l'opérateur =
déclenche une erreur et fais appel à la fct ci-dessous se trouvant dans mlock.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 BOOL_STRUCT& BOOL_STRUCT::operator =(const BOOL_STRUCT& Op) { OpOk = false; // Controle A = A ??? impossible/inutile/erreur if(this == &Op || !Op.OpOk || (Op.nbbits <= NULL) || (Op.boolfield == NULL)) return *this; if(boolfield != NULL) delete [] boolfield; // erreur entrée dans _unlock ........ }
pourtant le pointeur existe et bien initialisé avec une adresse (tableau de bool).
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
23 /*** * _unlock - Release multi-thread lock * *Purpose: * Note that it is legal for a thread to aquire _EXIT_LOCK1 * multiple times. * *Entry: * locknum = number of the lock to release * *Exit: * *Exceptions: * *******************************************************************************/ void __cdecl _unlock ( int locknum ) { /* * leave the critical section. */ LeaveCriticalSection( _locktable[locknum].lock ); }
pourtant je fais appel à cet opérateur de multiples fois sans erreur.
Quelqu'un peut il m'aider ?
Merci.
Partager