У меня есть решение parasoft, и я получаю 3 одинаковые ошибки: «Вместо этого следует использовать объекты для управления ресурсами». Эти ошибки исходят из созданной мной структуры. Как я могу удалить это, не изменяя мою структуру? указатель "имя указателя"
С++ ошибка парасофта
Ответы (2)
Вероятно, это говорит о том, что вы должны использовать какие-то интеллектуальные указатели для управления динамически создаваемыми объектами вместо new
и delete
.
person
Luchian Grigore
schedule
30.04.2012
не могли бы вы уточнить это, пожалуйста. На данный момент я создаю новый узел с новым ключевым словом, и я получаю ошибки parasoft в левой и правой ветвях узла. Я также получаю одну из этих ошибок в корне дерева, и корень определяется как переменная-член и указатель на нее. Я не знаю, поможет ли это вам уточнить, пожалуйста.
- person DorkMonstuh; 30.04.2012
Да, я смотрел на умные указатели, но не очень понимаю. Я действительно не знаю, как использовать его в этом контексте.
- person DorkMonstuh; 30.04.2012
@JohnLam вы должны использовать интеллектуальные указатели вместо необработанных указателей.
- person Luchian Grigore; 30.04.2012
Как преобразовать этот код в интеллектуальный указатель? Узел* новыйУзел = новый Узел; .
- person DorkMonstuh; 30.04.2012
@JohnLam что-то вроде
typedef SmartPtr<Node> NodePtr; NodePtr pNode(new Node);
- person Luchian Grigore; 30.04.2012
Необходимо использовать библиотеку, чтобы использовать функциональность интеллектуального указателя, поскольку я получаю сообщение об ошибке, говорящее, что smartptr не является шаблоном.
- person DorkMonstuh; 30.04.2012
@JohnLam SmartPtr был просто примером. Вы можете использовать реализацию boost или std::shared_ptr или std::unique_ptr.
- person Luchian Grigore; 30.04.2012
Вы можете перейти к представлению задачи качества, чтобы посмотреть на создаваемое нарушение. Оттуда вы можете щелкнуть правой кнопкой мыши на нарушении и выбрать «Просмотреть документацию по правилам», это даст вам представление о том, что помечается как нарушение, а также даст вам пример кода о том, как исправить нарушение.
Если вы хотите просто игнорировать нарушение, вы можете либо отключить правило в своей тестовой конфигурации, либо подавить нарушение. Это можно сделать, щелкнув правой кнопкой мыши по нарушению и выбрав «Подавить задачу».
person
Josh Rodriguez
schedule
04.03.2016