На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> объявление указателей внутри цикла , объявление указателей внутри цикла
    ExpandedWrap disabled
      void PortTabReset(P_TABLE* portTable)
      {
        for (UINT16 index = 0; index < portTable->maxNumber; index++)
        {
            --//--    
            --//--    
          G_PORT *port = &portTable->ports[index];
          if (port->isCreated)
          {
            --//--    
            --//--    
       
            port->channel = NULL;
            port->isSender = FALSE;
            port->isCreated = FALSE;
          }
        }
      }

    Есть такая функция, и меня очень сильно смущает декларация указателя внутри цикла. Но меня все убеждают что это нормально.
    Меня смущает то, что при выходе из цикла значение полей portTable->ports[index] может измениться со "сброшенного" как
    внутри цикла на неизвестное при выходе. Это изменение может на мой взгляд произойти из за того, что декларация переменной указателя объявлена внутри цикла.

    Если можно, либо подтвердите либо опровергните мои опасения.
    Спасибо.
    Сообщение отредактировано: JoeUser -
      Так снаружи цикла переменной и не будет видно, в чем проблема? portTable->ports[index] не изменится после того, как G_PORT* port выйдет из области видимости.
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0358 ]   [ 17 queries used ]   [ Generated: 28.03.24, 12:52 GMT ]