C++ malloc(): memory corruption problem
Hejsan!
Jag arbetar på ett AI projekt och har nu helt plötstligt stött på ett besynnerligt problem. Jag deklarerar en medlemsvariabel av typen map<string,string> och får då (på ett helt annat ställe i koden som absolut inte har någonting att göra med denna variabel) ett run-time malloc(): memory corruption fel.
Variabeln används ingenstans ännu. Jag har provat med andra typer av variabler, bla. funkar char * test[10] och char [10] men inte string [10]. Det är som om programmet helt fått fnatt. Den hanterar hur bra som helst de gamla medlemsvariablerna, t.ex. en vector <AgentTrust> o.s.v.
Felmeddelandet ser ut som följande:
*** glibc detected *** ./game: malloc(): memory corruption: 0x0816d0c8 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7d3c1cd]
/lib/tls/i686/cmov/libc.so.6(malloc+0x7f)[0xb7d3d83f]
/lib/tls/i686/cmov/libc.so.6[0xb7d2b6af]
/lib/tls/i686/cmov/libc.so.6(fopen+0x2c)[0xb7d2b77c]
./game(_ZN13TiXmlDocument8LoadFileEPKc13TiXmlEncoding+0x69)[0x806ae79]
./game(_ZN13KnowledgeBase20readGoalsFromXMLFileEPKc+0x40)[0x805c6f0]
./game(_ZN13KnowledgeBase14initAttributesEPKcS1_+0x37)[0x805de77]
./game(_ZN13KnowledgeBaseC1EPKcS1_P13TiXmlDocument+0xac)[0x805e32c]
./game(_ZN5Agent14initAttributesEPKcS1_S1_S1_+0x68)[0x80578e8]
./game(_ZN5AgentC1Ev+0x56)[0x8057ca6]
./game(main+0x41)[0x8057531]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc)[0xb7cea8cc]
./game(__gxx_personality_v0+0xc1)[0x80573f1]
Jag har provat ominstallera gcc och g++ men det hälpte inte. Använder ubuntu.
Vad brukar dessa felmeddelanden bero på? Jag har varit med om memory fel förrut såklart men då har det varit fråga om en felanvändning eller oinitialiserade variabler. Men jag använder ju inte ens variabeln i fråga! Har någon någon lösning?
Cheers,
Anjovi