Это совершенно мистифицирует меня. У меня в объявлении класса две строки:
std::multimap<int, int> commands;
std::multimap<std::string, std::string> config;
Код компилируется без проблем, но когда я его запускаю, я получаю следующую ошибку:
*** glibc detected *** ./antares: free(): invalid pointer: 0xb5ac1b64 ***
Кажется достаточно простым, за исключением того, что это не имеет никакого отношения к тому, как позже обрабатываются две переменные. Я удалил все ссылки в остальном коде на переменные - все равно произошел сбой. Я закомментировал одну из строк - либо одну, и программа запустилась без проблем. Как ошибка не может быть с какой-либо конкретной переменной? Я работаю в предположении, что в STL нет ошибки, но у меня закончились идеи о том, как мой код может это делать.
Это меня поставило в тупик, поэтому я был бы признателен за любую помощь, которую вы можете оказать.
Wyatt
РЕДАКТИРОВАТЬ: Я не предполагаю, что есть проблема с STL, это был только я немного бойкий. Я знаю, что ошибка в моем коде, что я хочу знать - что может быть неправильным в том, что объявление переменной, на которую нет ссылок, приведет к ее аварийному завершению? Почему это вообще повлияет на мой код?
Мой код длиной в несколько тысяч строк, так что на самом деле его чтение не стоит никому, я просто ищу кого-то, кто указал бы мне правильное направление.