управление памятью — c ++ Intel инспектор показывает много ошибок с надстройкой — мне нужно беспокоиться?

У меня проблема с моей текущей программой. По какой-то причине он всегда падал после последней строки кода в Windows. Я получил ошибку «приложение больше не отвечает» или что-то в этом роде.
Поэтому я попробовал инспектор Intel. И, к счастью, это сообщило мне несколько ошибок в моем проекте, когда я получил доступ к неинициализированной памяти.

Помимо этих очевидных проблем, которые я понимаю, у меня также есть некоторые:

  • Неправильные memcpy звонки в: 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 …

1

Решение

Boost с радостью отправит плохие аргументы; часто нет возможности проверить их. Если boost ::gorith :: trim передает неверный аргумент в memcpy, то это происходит потому, что вы передаете неверный аргумент в trim.

Так что да, вы должны беспокоиться. В вашей программе почти наверняка есть несколько ошибок. Проверьте ваши звонки на указанные функции.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]