이것은 완전히 나를 신비화합니다.두 개의 멀티 맵을 정의하는 C++이 프로그램을 중단시킵니다.
std::multimap<int, int> commands;
std::multimap<std::string, std::string> config;
코드는 문제없이 컴파일,하지만 난 그것을 실행할 때, 나는 다음과 같은 오류 얻을 : 그것을 제외하고,
*** glibc detected *** ./antares: free(): invalid pointer: 0xb5ac1b64 ***
은 간단한데을 나는 나의 클래스 선언에 두 개의 라인을 가지고 어떻게 두 변수가 나중에 처리되는지와 아무 관련이 없습니다. 변수의 나머지 코드에서 모든 참조를 제거했습니다. 여전히 충돌합니다. 나는 줄 중 하나를 주석 처리했는데, 그 중 하나는 문제없이 실행되었다. 특정 변수에 오류가없는 방법은 무엇입니까? 나는 STL에 버그가 없다는 가정하에 일하고있다. 그러나 나는 내 코드가 어떻게 이런 일을 할 수 있는지에 대한 아이디어를 다 써 버렸다.
본인은 저에게 곤란을 겪었으므로 제공 할 수있는 도움에 감사드립니다. Wyatt
편집 : STL에 문제가 있다고 제안하는 것은 아닙니다. 버그가 내 코드에 있다는 것을 알고 있습니다. 알고 싶지 않은 것은 참조되지 않은 변수를 선언하면 오류가 발생할 수 있습니다. 왜 내 코드에 전혀 영향을 미칠까요?
내 코드는 길이가 수천 라인에 이르기 때문에 누군가가 읽을 때 가치가있는 것은 아니며, 나는 올바른 방향으로 나를 가리키는 누군가를 찾고 있습니다.
아니요, 아니요, 코드에 버그가 있습니다. 두려운 것 같습니다.지도를 사용하면 간단히 노출됩니다. –
코드를 실제로 보지 않아도 가정이 올바른지 판단 할 수 없습니다. – Cogwheel