Vraag : De plaats van de de schendingslezing van de toegang op vector.push_back

Ik lees sommige waarden van een xmldossier dat ik een vector toen aanbracht. Nochtans op bepaalde waarden krijg ik deze fout:
First-chanceuitzondering bij 0x7568df2b in app.exe: 0xC0000005: De plaats van de de schendingslezing van de toegang 0x6e617274


It gebeurt altijd op de zelfde waarden maar dat houdt geen steek aangezien er niets werkelijk verschillend tussen die die werken en die zijn die.
I geen klasse AnimationNode hebben die een vector heeft, die eenvoudig een klasse is die een paar waarden (die altijd worden geïnitialiseerdc) houdt. Ik roep een functie om de waarden toe te voegen waarin ik push_back doe en dat is waar de uitzondering gebeurt. Alle waarden gaan mijn functie correctly.


1 in:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
#pragma eens
#include 
het gebruiken van namespace norm;
#include „TimedRotation.h“

typedef vector:: const_iterator TRIT;

klasse AnimationNode
{
publiek:

	AnimationNode (tstring naam);
	virtuele (nietige) ~AnimationNode;

	nietige AddTransformAt (int.tijd, omwenteling Float4, spil Float3);


	/**
	* Het begin van de omwentelingen.
	*/
	TRIT TransformBegin () {terugkeer m_Rotations.begin ();}
	/**
	* Het eind van de omwentelingen.
	*/
	TRIT TransformEnd () {terugkeer m_Rotations.end ();}

privé:

	het tstring m_Name;

	vector m_Rotations;

};


nietige AnimationNode:: AddTransformAt (int.tijd, omwenteling Float4, spil Float3)
{
	TimedRotation RT (tijd, omwenteling, spil, Float3 (1.1.1));
	m_Rotations.push_back (RT);				// <-- FOUT HIER
	norm:: soort (m_Rotations.begin (), m_Rotations.end (), TimedRotationSorter ());
}


When controleer ik waar de fout eigenlijk het is hier in xmemory voorkomt:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
_STD_BEGIN
		// DE FUNCTIE VAN HET MALPLAATJE _Allocate
template
	_Ty _FARQ *_Allocate (_SIZT _Count, _Ty _FARQ *)
	{// controle voor geheeloverstroming
	als (_Count <= 0)
		_Count = 0;
	als anders (((_SIZT) (- 1)/_Count) < sizeof (_Ty))
		_THROW_NCEE (norm:: bad_alloc, VERKLAAR) nietig;

		// wijst opslag voor _Countelementen van toe type _Ty
	terugkeer ((_Ty _FARQ *):: nieuwe exploitant (_Count * sizeof (_Ty)));      // <-- FOUT HIER
	}

With _Count de waarde 52442120



I hebben maakte het xmldossier vast, bijvoorbeeld, lezend de waarden van de werken van de Stekel Bip01, die van de oorzaak van de Dij van Bip01 R exception.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
 
		
	
	
		
	



I helemaal dit niet worden, waarom sommige waarden veroorzaken dit terwijl anderen niet?
Anyone wie wat licht op dit kan afwerpen?


Thanks vooraf.
Attachments:

Antwoord : De plaats van de de schendingslezing van de toegang op vector.push_back

Enkel ervoor te zorgen om is het niet een kwestie van de geheugengrootte: slaat u eigenlijk miljoenen op ingangen in de m_Rotationsvector?

Als niet, toen is een goede plaats beginnen geheugencorruptie te zoeken, het geheugen in en rond de vector.

Bijvoorbeeld, het lid van m_Namegegevens, en de klasse TimedRotation.
Andere oplossingen  
 
programming4us programming4us