Адрес объекта с автоматическим хранением не должен присваиваться другому объекту, который может сохраняться после прекращения существования первого объекта
Адрес объекта с автоматическим хранением не должен присваиваться другому объекту, который может сохраняться после прекращения существования первого объекта.
Если объект продолжает указывать на другой объект после того, как последний объект прекращает свое существование, отмена ссылки на первый объект приводит к неопределенному поведению.
Средство проверки помечает ситуации, когда адрес локальной переменной назначается указателю, определенному в глобальной области.
Проверка не вызывает нарушений этого правила, если:
Функция возвращает адрес локальной переменной. AUTOSAR C++14 Rule M7-5-1 охватывает эту ситуацию.
Адрес переменной, определенной в области действия блока, назначается указателю, который определен с большей областью действия, но не с глобальной областью действия.
Например:
void foobar ( void )
{
char * ptr;
{
char var;
ptr = &var;
}
}char * ptr;
void foobar ( void )
{
char var;
ptr = &var;
}
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Объявление |
| Категория: Обязательные, неавтоматические |