Bonjour,
J'ai une classe qui notament parse un fichier afin de récupérer les tokens. La compilation marche bien. Mais l'éxécutable me mange toute ma ram et fini par dire:
Pourtant le fichier a parser et minuscule (pour l'instant je fais des test)terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Abandon (core dumped)
La classe posant problème!Envoyé par Le fichier
En plus boost::tokenizer n'est pas multi threadé c'est facheux ça me prend qu'un seul proc en entier! Quel gachis
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 #include "Reaction.hpp" namespace tools { Reaction::Reaction(std::wstring newPath) : path(newPath) { // Create flow std::wifstream file(toANSI(path).c_str(), std::ios::in); // Current line std::wstring line; // typedef for a better readable code typedef boost::tokenizer< boost::char_separator<wchar_t>, std::wstring::const_iterator, std::wstring > tokenizer; // The separator boost::char_separator<wchar_t> separator( L"," ); // If open file success if (file) { while (std::getline(file, line)) { // While string is not empty while (!line.empty()) { // Personal tokeniser tokenizer tokens( line, separator ); //std::copy( tokens.begin(), tokens.end(), std::back_inserter(reactions) ); for (tokenizer::iterator tokenIterator = tokens.begin(); tokenIterator != tokens.end(); ++tokenIterator) { reactions.push_back(*tokenIterator); } } } file.close(); } else { std::wcerr << "Error! Can not open file: " << path << std::endl; exit(EXIT_FAILURE); } } Reaction::~Reaction() { } std::wstring Reaction::getPath() const { return path; } std::vector<std::wstring> Reaction::getReactions() const { return reactions; } std::wstring Reaction::getReactions(int index) const { return reactions.at(index); } }
En vous remerciant de votre aide
Partager