MISRA C++:2008 Rule 7-5-2

Адрес объекта с автоматическим хранением не должен быть присвоен другому объекту, который может сохраниться после того, как первый объект прекратил существование

Описание

Управляйте определением

Адрес объекта с автоматическим хранением не должен быть присвоен другому объекту, который может сохраниться после того, как первый объект прекратил существование.

Реализация Polyspace

Средство проверки отмечает ситуации, где адрес локальной переменной присвоен указателю, заданному в глобальной области видимости.

Средство проверки не повышает нарушения этого правила если:

  • Функция возвращает адрес локальной переменной. Эта ситуация покрыта MISRA C++:2008 Rule 7-5-1.

  • Адрес переменной, заданной в области действия блока, присвоен указателю, который задан с большим осциллографом (но не глобальная область видимости).

    Например:

     void foobar ( void )
      {
        char * ptr;
        {
          char var;
          ptr = &var;
        }
      }
    Только если указатель задан в глобальной области видимости, обнаруженная проблема. Например, средство проверки правила отмечает проблему здесь:
    char * ptr;
    void foobar ( void )
      {
          char var;
          ptr = &var;
      }

Обменивайтесь сообщениями в отчете

Адрес объекта с автоматическим хранением не должен быть присвоен другому объекту, который может сохраниться после того, как первый объект прекратил существование.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Проверяйте информацию

Группа: объявления
Категория: необходимый

Введенный в R2013b