У меня проблема с моей текущей программой. По какой-то причине он всегда падал после последней строки кода в Windows. Я получил ошибку «приложение больше не отвечает» или что-то в этом роде.
Поэтому я попробовал инспектор Intel. И, к счастью, это сообщило мне несколько ошибок в моем проекте, когда я получил доступ к неинициализированной памяти.
Помимо этих очевидных проблем, которые я понимаю, у меня также есть некоторые:
boost::algorithm::trim()
myptree.get<boost::posix_time::ptime>("path.to.node")
где myptree
имеет тип boost::property_tree::ptree
cout << myptime
где myptime
имеет тип boost::posix_time::ptime
…
это значит, что я неправильно использую функции библиотеки буста? Или это ложные срабатывания?
Я просто запутался, потому что функции работают, они делают то, что я хочу, и я не получаю сообщения об ошибке.
В конце я также получаю предупреждение о том, что память не освобождена (из источника [Unknown]).
пример для отделки:
#include <iostream>
#include <boost/algorithm/string.hpp>
int main() {
std::string test = " test ";
boost::algorithm::trim(test);
std::cout << test << std::endl;
return 0;
}
дает мне неправильный вызов memcpy …
Boost с радостью отправит плохие аргументы; часто нет возможности проверить их. Если boost ::gorith :: trim передает неверный аргумент в memcpy, то это происходит потому, что вы передаете неверный аргумент в trim.
Так что да, вы должны беспокоиться. В вашей программе почти наверняка есть несколько ошибок. Проверьте ваши звонки на указанные функции.
Других решений пока нет …