Problem z dodaniem elementu do kontenera std::map

0

Witam.
Mam pewien problem z mapą. Wklejam tylko interesujące (mam nadzieję) kawałki kodu, bo reszta to jest dłubanina aby odpowiednie liczby i dane uzyskać :D

Tak więc w nagłówku klasy mam prywatne pole:
<code=c++>std::map<std::string, GLuint> _shaders;


I teraz próbuje dodać nowy element.
<code=c++>fstream f;
	f.open("debug.txt", fstream::in | fstream::out | fstream::app);
	f << "------------" << endl;
	f << file << endl;
	f << hProgramShader << endl;
	this->_shaders[file] = hProgramShader;
	f << "I po" << endl;
	f.close();
	

I teraz od razu crashuje po dojściu do dodawania (próbwałem już insert).

A oto zawartość pliku debug.txt


Identity
3

Z góry dziękuje za pomoc.

0

Uf... widzę że nie udało mi się porządnie to dodać :(

fstream f;
f.open("debug.txt", fstream::in | fstream::out | fstream::app);
f << "------------" << endl;
f << file << endl;
f << hProgramShader << endl;
this->_shaders[file] = hProgramShader;
f << "I po" << endl;
f.close();
 

No i oczywiście w pliku h mam deklaracje jak

std::map<std::string, GLuint> _shaders;
0

Sprawdź, czy obiekt this istnieje, czy gdzieś go przypadkowo nie usunąłeś.

0

Problem rozwiązałem i właśnie prawdopodobnie to nie była moja wina. Skopiowałem cały kod aplikacji na linuxa i tam po skompilowaniu uruchomiło się wszystko poprawnie.
Później spróbowałem znowu na Windowsie, wywaliło błędy. Przeinstalowałem mingw i wszystko śmiga ;)
Ale dzięki za sugestie :)

0

to prawdopodobnie oznacza dokładnie to co napisał @_0x666_, po prostu miałeś fuksa, że po skompilowaniu innym komplatorem operujesz na innym obszarze pamięci i przez to nie masz błędu, ale jak dalej upierasz się że jest to wina kompilatora to nie zdziw się jak Ci kiedyś losowo wyskoczy jakiś błąd.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.